Teradata - 逻辑和条件运算符

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

语法 含义
> 大于
< 小于
>= 大于或等于
<= 小于或等于
= 等于
BETWEEN 如果值在范围内
IN 如果值在 <expression> 中
NOT IN 如果值不在 <expression> 中
IS NULL 如果值为 NULL
IS NOT NULL 如果值不为 NULL
AND 组合多个条件。仅当所有条件都满足时才计算为真
OR 组合多个条件。仅当任一条件满足时才计算为真。
NOT 反转条件的含义

BETWEEN

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

示例

考虑以下员工表。

EmployeeNo FirstName LastName JoinedDate DepartmentNo BirthDate
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Peter Paul 3/21/2007 2 4/1/1983
104 Alex Stuart 2/1/2008 2 11/6/1984
105 Robert James 1/4/2008 3 12/1/1984

以下示例获取员工编号在 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