算術演算子について

[OS]ALL
[リリース] ALL
[キーワード] Base, OPERATOR, IF, WHERE

[質問]

比較演算子を用いてデータを抽出する際、IFステートメントでは「=>」が使用できるのに、WHEREステートメントではなぜ「=>」が使用できないのですか。

IFステートメントを利用した場合のログ
 1  DATA test_if ;
 2   SET sashelp.class ;
 3   IF age => 14 ;
 4 RUN ;

 NOTE: データセットSASHELP.CLASS から19 オブザベーションを読み込みました。
WHEREステートメントを利用した場合のログ
 6 DATA test_wh ;
 7   SET sashelp.class ;
 NOTE: SCL プログラムのテキスト
 8   WHERE age => 14 ;
               -
               22
               76
ERROR: WHERE 式の読み込み中に、構文エラーが発生しました。

[回答]

IFステートメントとWHEREステートメントは、SASプログラムに追加された経緯の違いがあるため、質問のような現象が発生します。

■ IFステートメント
SAS System バージョン5で追加されたステートメントで、「< = 」、「=<」、「>=」、「=>」の4つの比較演算子が、DATAステップ内でのみ利用可能な仕様となっていました。

■ WHEREステートメント
SAS System バージョン6から導入されたステートメントで、DATAステップだけでなく、SQLプロシジャでも利用可能なステートメントを目指したため、当時のANSI準拠に則り、「<=」、「>=」の2つの比較演算子のみを利用可能としました。