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; |