【问题标题】:SQL CASE WHEN ...ANDSQL 案例当 ...AND
【发布时间】:2014-08-06 21:30:44
【问题描述】:

有没有办法像这样编写 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 语句后发生两件事。

谢谢

【问题讨论】:

    标签: sql sql-server-2008 tsql case


    【解决方案1】:

    不,你必须做两个案例陈述

    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
    

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 2018-09-18
        • 1970-01-01
        • 2014-05-20
        • 2018-11-29
        • 1970-01-01
        • 2021-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多