BookmarkSubscribeRSS Feed

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

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

質問

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 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む