TSQL - 案例 - 值?

Bro*_*ink 9 sql t-sql sql-server

有没有办法可以为case语句指定值?下面的语句没有执行,因为它认为53,57,82,83等列是列..是否有一个解决方案..我搜索了但没有发现任何说你不能使用IN案例 - 当表达..

select 
x =
case 
    when xvalue in ([52],[57],[82],[83]) 
        then "xvalue"
    when yvalue in ([01],[02],[11]) 
        then "yvalue"
    else
        'NULL'
    end
from xyztable
Run Code Online (Sandbox Code Playgroud)

小智 16

不要在数字周围加上括号.


OMG*_*ies 12

使用:

SELECT x = CASE 
             WHEN t.xvalue IN (52, 57, 82, 83) THEN 'xvalue'
             WHEN t.yvalue IN (01, 02, 11) THEN 'yvalue'
             ELSE NULL
           END
  FROM TABLE t
Run Code Online (Sandbox Code Playgroud)

假设您想要列中的值,请使用:

SELECT x = CASE 
             WHEN t.xvalue IN (52, 57, 82, 83) THEN t.xvalue
             WHEN t.yvalue IN (01, 02, 11) THEN t.yvalue
             ELSE NULL
           END
  FROM TABLE t
Run Code Online (Sandbox Code Playgroud)

您意识到如果xvalue和yvalue都在组中,则只显示xvalue?