2016-05-02 48 views
1

所以基本上我有一個函數命名爲「CommaSeparatedListToTable」處理空行從逗號返回在SQL Server分隔的列表表函數

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

請問您能否提供樣品輸入和輸出。謝謝! – asktonishant

回答

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 
+1

很高興收到你的來信。 –