处理从SQL Server中的逗号分隔列表返回到表函数的空白行

时间:2016-05-02 09:07:45

标签: sql-server

所以基本上我有一个名为'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 ('')
       )
)

1 个答案:

答案 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