今回はWHEREステートメントについて解説します。
/* where */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1 in (1111, 2222, 3333);
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。
/* where 条件1つ */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1 in (1111);
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。(条件が1つでも使える)
/* where 条件文字列 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Char1 in ("AAAA", "BBBB", "CCCC");
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。
- 文字列型でも設定できる。
/* where 数値型と文字列 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1 in ("AAAA", "BBBB", "CCCC");
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。
- 文字列型でも設定できる。
- 型が合っていないとエラーとなる。
/* 5555,6666,7777 */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1 in (5555, 6666, 7777);
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。
- 条件に合う値が無いと0レコードのデータセットが出力される。
/* where or */
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1=1111 or Id1=2222 or Id1=3333;
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略せずに、通常通り記載することもできる。
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1=1111 and Char1="AAAA";
run;


- whereを用いて処理条件を設定できる。
- if文と同様、andも使える。
/*where文が複数*/
data data1;
Id1=1111; Char1="AAAA";
output;
Id1=2222; Char1="BBBB";
output;
Id1=3333; Char1="CCCC";
output;
Id1=4444; Char1="DDDD";
output;
run;
data data2; set data1;
where Id1 in (1111, 2222, 3333);
where Id1 in (1111, 4444);
run;


- whereを用いて処理条件を設定できる。
- or条件を簡略して記載できる。
- where文が複数あるとき、最後のwhere文が優先される。