2016-10-18 15 views
2

を持たずにcase文を書くことができます。は、私たちは、私はこのクエリを持っているelse文

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

それは

としてのp/oを私に与えているIdを

B
NULL
NULL
NULL

NULLの値を出力したくない場合は、AとBを比較したいだけです。case文で可能です。

+1

テストテーブルが5行があります:ID = 1、ID = 2と1と異なると他人のものを使用すると、結果からnull Sを省略したい場合は、where句を追加する必要があります値。 WHERE条件を指定しない場合、結果セットは常に5行から構成されます。したがって、行数を制限する必要がある場合は、WHERE条件が必要です。しかし、それはCASE句とは関係がありません。それは、それ自身では決して結果セットを制限しないからです。 – Insac

答えて

3

case expressionは、式の値を操作するだけで、結果から行を削除することはできません。

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

WHERE句を使用して出力を制限できます。

SELECT CASE WHEN id=1 THEN 'A' 
WHEN id=2 THEN 'B' 
END 
FROM test 
WHERE id IN (1,2) 

それともCASE文の中else一部を使用する代わりにnullの他のいくつかの値を披露したい場合。

SELECT CASE WHEN id=1 THEN 'A' 
WHEN id=2 THEN 'B' ELSE 'Invalid' 
END 
FROM test 
関連する問題