SQL CASE WHEN ... AND(SQL CASE WHEN …AND)

2019-10-20 07:39发布

有没有写这样的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语句进行评估后,两件事情发生。

谢谢

Answer 1:

不,你必须做出2 case语句

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


Answer 2:

你可以做到这一点没有CASE语句:

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

此只执行,如果操作WHERE条件满足。 sqlFiddle



文章来源: SQL CASE WHEN …AND