SQL CASE WHEN ... AND

时间:2014-06-17 00:36:31

标签: sql sql-server-2008 tsql case

有没有办法编写这样的SQL查询:

CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3         
        THEN @AdjStartYear = '2012/07/01' AND @AdjEndYear = '2012/12/31'

基本上,我想在评估CASE语句后发生两件事。

由于

2 个答案:

答案 0 :(得分:3)

不,你必须发表2个案例陈述

select @AdjStartYear = CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3
                            THEN  '2012/07/01' 
                       END,
       @AdjEndYear = CASE WHEN DATEPART(yy,@year_end) = 2013 AND DATEPART(mm,@year_end) = 3
                          THEN  '2012/12/31' 
                     END

答案 1 :(得分:1)

您可以在没有CASE声明的情况下执行此操作:

SELECT @AdjStartYear = '2012/07/01', @AdjEndYear = '2012/12/31'
WHERE DATEPART(year, @year_end) = 2013 AND DATEPART(month, @year_end) = 3

仅在满足WHERE条件时才执行此操作。 sqlFiddle