Teradata 逻辑和条件运算符


Teradata 支持以下逻辑和条件运算符。这些运算符用于执行比较和组合多个条件。

语法 Meaning
> 比...更棒
< 少于
>= 大于或等于
<= 小于或等于
= Equal to
BETWEEN 如果值在范围内
IN 如果 <表达式> 中的值
NOT IN 如果值不在 <表达式> 中
IS NULL 如果值为 NULL
不为空 如果值不为空
AND 结合多个条件。仅当满足所有条件时才计算为真
OR 结合多个条件。仅当满足任一条件时才计算为真。
NOT 反转条件的含义

BETWEEN


BETWEEN 命令用于检查一个值是否在一个值范围内。

例子

考虑以下员工表。

职工号 LastName 加入日期 部门编号 出生日期
101 Mike James 2005 年 3 月 27 日 1 1/5/1980
102 Robert Williams 2007 年 4 月 25 日 2 3/5/1983
103 Peter Paul 2007 年 3 月 21 日 2 4/1/1983
104 Alex Stuart 2/1/2008 2 11/6/1984
105 Robert James 1/4/2008 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


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


NOT IN 命令反转 IN 命令的结果。它获取值与给定列表不匹配的记录。

例子

以下示例获取员工编号不在 101、102 和 103 中的记录。

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

上述查询返回以下记录。

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