BookmarkSubscribeRSS Feed

SQLプロシジャUPDATE句によるデータセットの条件付き更新

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 1,585

質問

SQLプロシジャのUPDATE句を利用して、値の更新を行なっています。 条件によって代入する値を変更したいのですが、このような場合に簡潔に記述する方法はないでしょうか。
やはり、UPDATEステートメントを複数行記述するしかないのでしょうか。

回答

指定される選択条件が比較的単純であれば、次のサンプルプログラムのような記述で、代入する値を変更できます。 より複雑な条件の場合は、数回に分けてUPDATE句を実行してください。

 

UPDATE句とCASE式の構文

 

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;

 

Version history
Last update:
‎04-19-2018 12:56 AM
Updated by:

sas-innovate-white.png

Register Today!

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.

Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む