SQLプロシジャのUPDATE句を利用して、値の更新を行なっています。 条件によって代入する値を変更したいのですが、このような場合に簡潔に記述する方法はないでしょうか。
やはり、UPDATEステートメントを複数行記述するしかないのでしょうか。
指定される選択条件が比較的単純であれば、次のサンプルプログラムのような記述で、代入する値を変更できます。 より複雑な条件の場合は、数回に分けてUPDATE句を実行してください。
UPDATE テーブル名
SET 列名 = 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
;
PROC SQL ;
UPDATE sample
SET b = CASE
WHEN a = 1 THEN 1
WHEN a in (2, 3) THEN a * 2
ELSE 0
END
WHERE a <= 4 ;
QUIT;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。