サブセット化のWHEREステートメントについて

[OS]ALL
[リリース] ALL
[キーワード] Base, WHERE, BETWEEN, IN, CONTAINS, IS MISSING, IS NULL, LIKE

[質問]

サブセット化のWHEREステートメントで利用できる式には、どのようなものがありますか。

[回答]

サブセット化のWHEREステートメントでは、通常の演算子のほか、次のような条件式が利用できます。

■ 特定範囲を条件とする場合

・  BETWEEN - AND
data test1;
  do x = 10 to 20;
    output;
  end;
run;
data _null_ ;
  set test1;
  where x between 15 and 18;
  put _all_ ;
run;

■ 値を含むものを条件とする場合

・  IN
data test3;
  do x = 1 to 10;
    output;
  end;
run;
data _null_ ;
  set test3;
  where x in (1 4 6);
  put _all_ ;
run;
・  CONTAINS
data test2;
  s = 'ABCD'; output;
  s = 'AB)D'; output;
run;
data _null_ ;
  set test2;
  where s not contains ')';
  put _all_ ;
run;

■ ブランク、欠損値を条件とする場合

・  IS MISSING またはIS NULL
data test4;
  s = 'A'; output;
  s = ''; output;
  s = 'C'; output;
run;
data _null_ ;
  set test4;
  where s is not null ;
  put _all_ ;
run;

■ 特定パターンを条件とする場合

・  LIKE
LIKE演算子では、「%」、「_」でパターンを作成可能です。「_」は任意の1文字、「%」は1文字以上の任意の文字列を表します。
data test5 ;
  s = 'AB11'; output;
  s = 'CD11'; output;
  s = 'EF12'; output;
run;
ata _null_ ;
  set test5;
  where s not like 'EF__';
  put _all_ ;
run;
data _null_ ;
  set test5;
  where s like '%11';
  put _all_ ;
run;