Teradata - 逻辑和条件运算符



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

语法 含义
> 大于
< 小于
>= 大于或等于
<= 小于或等于
= 等于
BETWEEN 如果值在范围内
IN 如果值在<表达式>中
NOT IN 如果值不在<表达式>中
IS NULL 如果值为 NULL
IS NOT NULL 如果值不为 NULL
AND 组合多个条件。只有当所有条件都满足时才评估为真。
OR 组合多个条件。只要其中一个条件满足就评估为真。
NOT 反转条件的含义

BETWEEN

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

示例

考虑以下员工表。

员工编号 名字 姓氏 入职日期 部门编号 出生日期
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 
广告