2011-07-13 21 views
0

我發現這個鏈接如何忽略條件下,如果參數值=「ALL」

How to return all records if parameter is null

我需要,

忽略如上只是參數/條件下,當參數值所有。

如何做到這一點。

信息下面,TASK:不是空應該忽略,如果參數= ALL

Declare @psqluid varchar(15) = 'admin' 
Declare @psqlstartdate datetime = '06/01/2010' 
Declare @psqlenddate datetime = '06/28/2012' 
Declare @psqlcompany varchar(45) 
Declare @psqlapplication varchar(10) = 'APP2' 
Declare @psqlprogram varchar(10)= 'PROG1' 
SELECT * FROM [TMSFINAL].[dbo].[TMTMS] 
WHERE (@psqluid IS NULL OR [TMSFINAL].[dbo].[TMTMS].[tmsUserID][email protected]) 
AND [TMSFINAL].[dbo].[TMTMS].[tmsDate] >= @psqlstartdate 
AND [TMSFINAL].[dbo].[TMTMS].[tmsDate] <= @psqlenddate 
AND (@psqlcompany IS NULL OR [TMSFINAL].[dbo].[TMTMS].[tmsCompany] = @psqlcompany) 
AND [TMSFINAL].[dbo].[TMTMS].[tmsApplication] = @psqlapplication 
AND [TMSFINAL].[dbo].[TMTMS].[tmsProgram] = @psqlprogram 

回答

1
IF @param!="ALL" 
BEGIN 
    SET @Sql += 'Condition' 
END 

是不是工作?

補充說:

WHERE @psqluid = "ALL" OR [TMSFINAL].[dbo].[TMTMS].[tmsUserID][email protected] ... 
+0

這可能會工作,我想這並不需要加入串如圖所示忽略空參數鏈接的解決方案。這樣的事情? – Ahran

+0

我想我需要更多有關您的程序的信息,以便能夠做到 – RiaD

+0

添加了信息,如果paramater =「ALL」,請使用忽略來完成此操作 – Ahran