Teradata - 逻辑和条件运算符


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

句法 意义
> 比...更棒
< 少于
>= 大于或等于
<= 小于或等于
= 等于
之间 如果值在范围内
如果 <表达式> 中的值
不在 如果值不在 <表达式> 中
一片空白 如果值为 NULL
不为空 如果值不为空
结合多个条件。仅当满足所有条件时才计算为 true
或者 结合多个条件。仅当满足任一条件时才计算为 true。
不是 反转条件的含义

之间

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

例子

考虑以下员工表。

员工号 加入日期 部门编号 出生日期
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 命令的结果。它获取值与给定列表不匹配的记录。

例子

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