所以基本上我有一个名为'CommaSeparatedListToTable'的函数
Declare @ID AS Varchar(1000)=''
SELECT item FROM [dbo].[CommaSeparatedListToTable] (@ID)
现在当我使用该函数时,我的存储过程如下所示:
Select ...
From Table
Where (@ID = '')
OR (
@ID <> ''
AND c.id IN (SELECT item FROM [dbo].[CommaSeparatedListToTable](@ID))
)
)
这里,它将@ID作为空白传递时返回空行。但我喜欢做什么,而不是处理空行。如果它返回一个空行,那么我想只用空格过滤。
如下所示,
Select ...
From Table
Where (@ID = '')
OR (
@ID <> ''
AND c.id IN ('')
)
)
答案 0 :(得分:0)
希望这适合你。
If exists(SELECT item FROM [dbo].[CommaSeparatedListToTable](@ID))
BEGIN
Select ...
From Table
WHERE c.id IN (SELECT item FROM [dbo].[CommaSeparatedListToTable](@ID)))
END
ELSE
BEGIN
Select ...
From Table
WHERE AND c.id = ' '
END