Teradata-論理演算子と条件演算子

Teradataは、次の論理演算子と条件演算子をサポートしています。これらの演算子は、比較を実行し、複数の条件を組み合わせるために使用されます。

構文 意味
> 大なり記号
< 未満
>= 以上
<= 以下
= に等しい
BETWEEN 値が範囲内の場合
IN <式>の値の場合
NOT IN <式>に値がない場合
IS NULL 値がNULLの場合
IS NOT NULL 値がNULLでない場合
AND 複数の条件を組み合わせます。すべての条件が満たされた場合にのみtrueと評価されます
OR 複数の条件を組み合わせます。いずれかの条件が満たされた場合にのみtrueと評価されます。
NOT 条件の意味を逆にします

の間に

BETWEENコマンドは、値が値の範囲内にあるかどうかを確認するために使用されます。

次の従業員テーブルについて考えてみます。

従業員番号 ファーストネーム 苗字 JoinedDate 部門番号 誕生日
101 マイク ジェームズ 2005年3月27日 1 1980年1月5日
102 ロバート ウィリアムズ 2007年4月25日 2 1983年3月5日
103 ピーター ポール 2007年3月21日 2 1983年4月1日
104 アレックス スチュアート 2008年2月1日 2 1984年11月6日
105 ロバート ジェームズ 2008年1月4日 3 1984年12月1日

次の例では、従業員番号が101、102〜103の範囲のレコードをフェッチします。

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo BETWEEN 101 AND 103;

上記のクエリを実行すると、従業員番号が101〜103の従業員レコードが返されます。

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

INコマンドは、指定された値のリストに対して値をチェックするために使用されます。

次の例では、101、102、および103の従業員番号を持つレコードをフェッチします。

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo in (101,102,103);

上記のクエリは、次のレコードを返します。

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

ありませんで

NOT INコマンドは、INコマンドの結果を逆にします。指定されたリストと一致しない値を持つレコードをフェッチします。

Example

The following example fetches records with employee numbers not in 101, 102 and 103.

SELECT * FROM  
Employee 
WHERE EmployeeNo not in (101,102,103);

The above query returns the following records.

*** Query completed. 2 rows found. 6 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo          FirstName                      LastName 
----------- ------------------------------ -----------------------------    
    104                Alex                          Stuart 
    105                Robert                        James