Skip to content
Advertisement

Can we write case statement without having else statement

I have this query:

select case when id=1 then 'A'
when id=2 then 'B'
end 
from test

It is giving me o/p as

Id
A
B
NULL
NULL
NULL

I don’t want to have NULL values in my output, I only want to compare in A and B, is it possible in case statement.

Advertisement

Answer

A case expression can only manipulate the value of an expression, not remove rows from the result. If you want to omit the nulls from the result, you’ll have to add a where clause:

SELECT CASE WHEN id = 1 THEN 'A'
            WHEN id = 2 THEN 'B'
       END 
FROM   test
WHERE  id IN (1, 2) -- HERE
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement