我的查询中有以下子句。我有一个称为服务条目的表和一个称为服务条目部分的第二个表。一个服务条目记录可以有多个服务条目部分。服务条目部分表有一个名为 servicetypeids 的列,格式如下:第 1 行:1,2,3,第 2 行:3,4 等等。我使用表值函数来查看服务部件中的哪些服务条目具有服务类型 ID,例如我的参数可能是 1 或 2,3 等等。查询的那部分工作正常,我执行交叉应用等。我想要做的是如果我的参数 @ServiceTypes 为 NULL,那么我不想搜索服务类型 ID 列并简单地返回服务条目中存在的服务条目部分。我仍将加入零件表,零件活动条件工作正常。
S.ID IN(SELECT DISTINCT ServiceEntryID
FROM
ServiceEntryPart M
CROSS APPLY
dbo.SplitStrings_Moden(M.ServiceTypeIDs, N',') M2
JOIN dbo.SplitStrings_Moden(@ServiceTypes, N',') P ON M2.Item = P.Item
INNER JOIN Part ON M.PartID = Part.ID
WHERE
@ActivePart is null or @ActivePart = Part.Active))