SQLServerで分岐を行うCASEのサンプルです。
構文
case文の構文には2種類あります。
状況により使いやすい方をご使用ください。
- (単純CASE式)
- CASE <値> WHEN <比較値1> THEN <結果1> WHEN <比較値2> THEN <結果2> ... ELSE <結果(その他)> END
- (検索CASE式)
- CASE WHEN <条件1> THEN <結果1> WHEN <条件2> THEN <結果2> ... ELSE <結果(その他)> END
サンプル
例1)単純case式を使ったサンプル
1 2 3 4 5 6 7 8 9 10 |
DECLARE @aa int SET @aa = 2 SELECT CASE @aa WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'Z' END |
- (結果)
- 'B'
例2)検索case式を使ったサンプル
1 2 3 4 5 6 7 8 9 10 |
DECLARE @aa int SET @aa = 2 SELECT CASE WHEN @aa = 1 THEN 'A' WHEN @aa = 2 THEN 'B' ELSE 'Z' END |
- (結果)
- 'B'
備考
- CASE式内の結果の型は全て同じ型になるようにしてください。
(バグの原因になります。)