2
我在我的表中的日期列。我想所有的記錄,其中相比於今天的日期的月數大於10,但我想申請這個條件只有當我的聲明參數的值設爲@parameter='Apply'
。否則,我不想執行日期標準。使用IF條件在WHERE子句
我的結果應該是第一行,第二行和第三行,當@parameter ='Apply'
,否則如果@parameter
是別的東西,那麼所有四行都會返回。
GetDate Val
------------ -----
1/12/2013 A
1/12/2012 B
1/12/2014 C
1/12/2015 D
下面的工作如預期,但有很多冗餘代碼。有沒有辦法將if條件放在where子句中?
DECLARE @parameter VARCHAR(10)='Apply'
if(@parameter='Apply')
begin
select * from testTable where
DATEDIFF(MONTH,GetDate,GETDATE()) >10
end
else
begin
select * from testTable
end
相關:捉住所有查詢(http://sqlinthewild.co.za/index.php/2009/03/19/catch - 所有查詢/) –