まずWHEREステートメントのLIKE演算子について、
データステップ100万回「whereステートメントでのみ使用できる演算子_contains,between,like」
で分かり易い説明があるのでご覧ください。
そして、今回紹介するエスケープ文字の設定について。
Sample data
data DT1; VAR = '100%'; output; VAR = '100'; output; run;
|
例えば上のデータから、末尾に「%」という文字が含まれるやつを抽出したい場合、
data DT2; set DT1; where VAR like '%#%' escape '#'; run;
|
というように書けます。
「escape '#'」で、「#」という文字をエスケープ文字として設定し、
この「#」の次に書かれた「%」をワイルドカードではなく、単なる文字としての「%」に変えています。
エスケープ文字は、「$」とか「\」とか自分で適当に設定できます。
ちなみに、
本題とそれるけど例えば「where VAR like "%abc"」みたいに、検索文字列をダブルクォーテーションで囲むと、検索文字列中の「%abc」がマクロとして解釈されてしまう。
マクロとして解釈されたくない場合は、検索文字列をシングルクォーテーションで囲むこと。
0 件のコメント:
コメントを投稿