具有多个值的TSQL case语句?

Joh*_*n S 6 sql t-sql sql-server

有没有办法做这样的事情?(这是伪代码)

      CASE(@P1) 
        WHEN 'a' or 'd' or 'z' THEN 1
        WHEN 'b' or 't' THEN 2
        ELSE 0 
Run Code Online (Sandbox Code Playgroud)

我的想法是我可以检查应该返回相同值的多个值.即'a'返回1,'t'返回2

jue*_*n d 18

select CASE WHEN @P1 in ('a', 'd', 'z') THEN 1
            WHEN @P1 in ('b', 't') THEN 2
            ELSE 0 
       END
from your_table
Run Code Online (Sandbox Code Playgroud)

要么

select CASE WHEN @P1 = 'a' or @P1 = 'd' or @P1 = 'z' THEN 1
            WHEN @P1 = 'b' or @P1 = 't' THEN 2
            ELSE 0 
       END
from your_table
Run Code Online (Sandbox Code Playgroud)