Teradata - 逻辑和条件运算符

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

语法含义
> 大于
< 小于
> = 大于或等于
< = 小于或等于
= 等于
BETWEEN 如果范围内的值
IN 如果< expression>中的值
NOT IN 如果值不在< expression>
IS NULL 如果value为NULL
IS NOT NULL 如果值为非空
AND 合并多个条件.仅在满足所有条件时才评估为真
OR 结合多个条件.仅在满足任一条件时才评估为真.
NOT 颠倒条件的含义

BETWEEN

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

示例

考虑以下员工表.

EmployeeNoFirstNameLastNameJoinedDateDepartmentNoBirthDate
101MikeJames3/27/200511/5/1980
1022007年4月25日23/5/1983

103PeterPaul2007年3月21日24/1/1983
104AlexStuart2/1/2008211/6/1984
105RobertJames1/4/2008312/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