WHEREステートメントを使用した特殊文字を含む値の抽出
[OS] ALL
[リリース] ALL
[キーワード] BASE, WHERE, LIKE, ESCAPE CHARACTER
[質問]WHEREステートメントのLIKE演算子を使用して、特殊記号である「%」で始まる文字列の含まれるオブザベーションを抽出したい場合、どうすればよいでしょうか。
[回答]
残念ながら、DATAステップでのWHEREステートメントでは、特殊文字のエスケープは対応できません。
下記のプログラム例は、上記の2通りの方法で、変数Xの中から「%」で始まり「d」で終わる5文字の値を持つオブザベーションを抽出します。 /* サンプルデータセット作成 */ DATA sample; INPUT x $; CARDS; %abcd aabcd abbcd ; RUN; /* 1) SQLプロシジャを用いる方法 */ PROC SQL; CREATE TABLE result AS SELECT * FROM sample WHERE x LIKE '\%___d' ESCAPE '\'; QUIT; /* 2) DATAステップを用いる方法 */ DATA result; SET sample; WHERE SUBSTR(x,1,1)='%' AND x LIKE '____d'; RUN; |