2018年9月26日水曜日

2つの文字を大文字・小文字区別せずに比較する





クマのプーさんの実写映画のやつ観に行ってきました。
プーさんが異常に可愛かったです。あとプーさんってぬいぐるみ設定だったんですね、知らなかった。。




プーさんの話は置いといて、
タイトルの通り、2つの文字を大文字・小文字区別せずに比較する方法を紹介したいと思います。


サンプルデータ
data test;
input a:$10. b:$10.;
cards;
pooh POOH
honey hunny
;



方法①
data out1;
  set test;
  if upcase(a) = upcase(b) then same_flg=1;
run;



半角のアルファベットを大文字にするupcase関数を使っています。
両変数を大文字にして比較しています。



方法②
data out2;
  set test;
  if compare(a,b,'i') = 0 then same_flg=1;
run;



compare( 対象変数1, 対象変数2, 'i' )」というように、3つめの引数に「'i'」と指定することで大文字・小文字区別せずに比較することができます。
戻り値が「0」なら一致してるということです。

(ただし、compare関数は日本語などのマルチバイトの文字には対応していないので、マルチバイトを含む場合は使用できません!ご注意ください!!)



どっち使うかは好みの問題ですね。
例えるなら、upcaseを使う方法はプーさんで、compare関数を使う方法はピグレットみたいな。





0 件のコメント:

コメントを投稿