【问题标题】:Nesting WHENs in SQL在 SQL 中嵌套 WHEN
【发布时间】:2018-02-16 10:38:06
【问题描述】:

我想按照以下方式进行 SELECT

CASE
    WHEN Status = 'Live'
        THEN
            WHEN BookingDate = LastModifiedDateTime
                THEN
                    'New'
                ELSE
                    'Modified'
        ELSE
            Status
    END AS s

我遇到了第二个WHEN 的问题

关键字“WHEN”附近的语法不正确。

我不确定如何解决这个问题?

【问题讨论】:

    标签: sql sql-server-2008 case


    【解决方案1】:

    不能嵌套WHEN,可以嵌套CASE

    CASE
        WHEN Status = 'Live'
            THEN
                CASE WHEN BookingDate = LastModifiedDateTime
                    THEN
                        'New'
                    ELSE
                        'Modified'
                END
            ELSE
                Status
    END AS s
    

    就个人而言,我会这样写:

    CASE
        WHEN Status = 'Live' AND BookingDate = LastModifiedDateTime
             THEN 'New'
        WHEN Status = 'Live'
             THEN 'Modified'
        ELSE Status
    END AS s
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2018-03-20
      • 1970-01-01
      相关资源
      最近更新 更多