Teradata 逻辑和条件运算符
Teradata支持以下逻辑和条件运算符。 这些运算符用于执行比较和组合多个条件。
| 句法 | 含义 |
|---|---|
| > | 比...更棒 |
| < | 少于 |
| >= | 少于... |
| <= | 小于或等于 |
| = | 等于 |
| BETWEEN | 如果值在范围内 |
| IN | 如果值在<expression>中 |
| NOT IN | 如果值不在<expression>中 |
| IS NULL | 如果值为NULL |
| IS NOT NULL | 如果值不为NULL |
| AND | 组合多个条件。 仅当满足所有条件时,才评估为true。 |
| OR | 组合多个条件。 如果满足任一条件,则计算为true。 |
| NOT | 反转条件的含义 |
BETWEEN
BETWEEN命令用于检查值是否在值的范围内。
例子
考虑下面的employee表。
| 员工编号 | 名字 | 姓 | 入职日期 | 部门 | 生日 |
|---|---|---|---|---|---|
| 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和102之间。
*** 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