Sql server SQL Server将子查询替换为@parameter
我在何处跟踪子查询Sql server SQL Server将子查询替换为@parameter,sql-server,Sql Server,我在何处跟踪子查询 AND ( EXISTS ( SELECT 1 FROM SHEMA.TABLE c CROSS APPLY [SHEMA].[Split](';', c.Configuration) s WHERE c.Id = ISNULL(@ConfigId, 1) AND LEFT(s.Valu
AND (
EXISTS (
SELECT 1
FROM SHEMA.TABLE c
CROSS APPLY [SHEMA].[Split](';', c.Configuration) s
WHERE c.Id = ISNULL(@ConfigId, 1)
AND LEFT(s.Value, CHARINDEX(',', s.Value, 0) - 1) = RCC.ReportGroupComponentsId
AND RIGHT(Value, LEN(Value) - CHARINDEX(',', Value, 0)) = RCC.ReportComponentsId
)
OR RCC.Id IS NULL
)
如何用字符串参数替换从SHEMA.TABLE读取的数据,该参数将包含拆分所需的所有数据
参数的格式为
'13151609;1315,250;1315,251;1315252’
总的来说,我想你想要:
AND EXISTS(SELECT 1
FROM (VALUES(@parameter))c(Configuration)
CROSS APPLY [SHEMA].[Split](';', c.Configuration) s
WHERE...) --without c.Id = ISNULL(@ConfigId, 1) as C.Id doesn't exist
请注意,我希望您的对象[SHEMA].[Split]
是一个内联表值函数,而不是带有WHILE
的多行表值函数