在SQL中嵌套WHEN

dit*_*tto 1 sql case sql-server-2008

我想沿着这条线做一个SELECT

CASE
    WHEN Status = 'Live'
        THEN
            WHEN BookingDate = LastModifiedDateTime
                THEN
                    'New'
                ELSE
                    'Modified'
        ELSE
            Status
    END AS s
Run Code Online (Sandbox Code Playgroud)

我遇到了第二个问题 WHEN

关键字"WHEN"附近的语法不正确.

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

Hon*_*ger 5

你不能窝WHEN,你可以窝CASE:

CASE
    WHEN Status = 'Live'
        THEN
            CASE WHEN BookingDate = LastModifiedDateTime
                THEN
                    'New'
                ELSE
                    'Modified'
            END
        ELSE
            Status
END AS s
Run Code Online (Sandbox Code Playgroud)

就个人而言,我会写它:

CASE
    WHEN Status = 'Live' AND BookingDate = LastModifiedDateTime
         THEN 'New'
    WHEN Status = 'Live'
         THEN 'Modified'
    ELSE Status
END AS s
Run Code Online (Sandbox Code Playgroud)