SQLプロシジャUPDATE句によるデータセットの条件付き更新
[OS] ALL
[リリース] ALL
[キーワード] Base, SQL, UPDATE clause
[質問]
SQLプロシジャのUPDATE句を利用して、値の更新を行なっています。
条件によって代入する値を変更したいのですが、このような場合に簡潔に記述する方法はないでしょうか。
[回答]指定される選択条件が比較的単純であれば、次のサンプルプログラムのような記述で、代入する値を変更できます。 より複雑な条件の場合は、数回に分けてUPDATE句を実行してください。 UPDATE句の構文
UPDATE 変数名 = CASE
WHEN 条件_1 THEN 値_1
...
WHEN 条件_n THEN 値_n
ELSE 値_m
END
WHERE 抽出条件 ;
プログラム例
DATA sample;
INPUT a b;
DATALINES;
1 0
2 0
3 0
4 0
5 0
;
RUN;
PROC SQL ;
UPDATE sample
SET B = CASE
WHEN a = 1 THEN 1
WHEN a in (2, 3) THEN a * 2
ELSE 1
END
WHERE a <= 4 ;
QUIT;
|
|