Teradata支持以下逻辑和条件运算符.这些运算符用于执行比较并组合多个条件.
语法 | 含义 |
---|---|
> | 大于 |
< | 小于 |
> = | 大于或等于 |
< = | 小于或等于 |
= | 等于 |
BETWEEN | 如果范围内的值 |
IN | 如果< expression>中的值 |
NOT IN | 如果值不在< expression> |
IS NULL | 如果value为NULL |
IS NOT NULL | 如果值为非空 |
AND | 合并多个条件.仅在满足所有条件时才评估为真 |
OR | 结合多个条件.仅在满足任一条件时才评估为真. |
NOT | 颠倒条件的含义 |
BETWEEN命令用于检查值是否在值范围内.
考虑以下员工表.
EmployeeNo | FirstName | LastName | JoinedDate | DepartmentNo | BirthDate |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | 2007年4月25日 | 2 | 3/5/1983 | ||
103 | Peter | Paul | 2007年3月21日 | 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命令用于检查给定值列表的值.
以下示例获取员工编号为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