我们可以在没有else语句的情况下编写case语句

Red*_*vil 8 sql sql-server select case sql-server-2008

我有这个问题:

select case when id=1 then 'A'
when id=2 then 'B'
end 
from test
Run Code Online (Sandbox Code Playgroud)

它给了我o/p as

Id
A
B
NULL
NULL
NULL

我不希望NULL在输出中有值,我只想在A和B中进行比较,是否可能在case语句中.

Mur*_*nik 7

case表达式只能操纵表达式的值,而不是从结果中删除行.如果null要从结果中省略s,则必须添加一个where子句:

SELECT CASE WHEN id = 1 THEN 'A'
            WHEN id = 2 THEN 'B'
       END 
FROM   test
WHERE  id IN (1, 2) -- HERE
Run Code Online (Sandbox Code Playgroud)