Teradata - Toán tử logic và điều kiện
Teradata hỗ trợ các toán tử logic và điều kiện sau. Các toán tử này được sử dụng để thực hiện so sánh và kết hợp nhiều điều kiện.
Cú pháp | Ý nghĩa |
---|---|
> | Lớn hơn |
< | Ít hơn |
>= | Lớn hơn hoặc bằng |
<= | Ít hơn hoặc bằng |
= | Tương đương với |
BETWEEN | Nếu giá trị trong phạm vi |
IN | Nếu các giá trị trong <biểu thức> |
NOT IN | Nếu các giá trị không có trong <biểu thức> |
IS NULL | Nếu giá trị là NULL |
IS NOT NULL | Nếu giá trị KHÔNG ĐẦY ĐỦ |
AND | Kết hợp nhiều điều kiện. Chỉ đánh giá đúng nếu tất cả các điều kiện được đáp ứng |
OR | Kết hợp nhiều điều kiện. Chỉ đánh giá đúng nếu một trong hai điều kiện được đáp ứng. |
NOT | Đảo ngược ý nghĩa của điều kiện |
GIỮA
Lệnh BETWEEN được sử dụng để kiểm tra xem một giá trị có nằm trong một phạm vi giá trị hay không.
Thí dụ
Hãy xem xét bảng nhân viên sau đây.
Nhân viên Không | Tên đầu tiên | LastName | Ngày tham gia | Bộ phận Không | Ngày sinh |
---|---|---|---|---|---|
101 | Mike | James | 27/3/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 25/4/2007 | 2 | 3/5/1983 |
103 | Peter | Paul | 21/3/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 |
Ví dụ sau tìm nạp các bản ghi có số nhân viên trong phạm vi từ 101,102 đến 103.
SELECT EmployeeNo, FirstName FROM
Employee
WHERE EmployeeNo BETWEEN 101 AND 103;
Khi truy vấn trên được thực thi, nó sẽ trả về các bản ghi nhân viên có nhân viên không từ 101 đến 103.
*** Query completed. 3 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName
----------- ------------------------------
101 Mike
102 Robert
103 Peter
TRONG
Lệnh IN được sử dụng để kiểm tra giá trị so với danh sách các giá trị đã cho.
Thí dụ
Ví dụ sau tìm nạp các bản ghi có số nhân viên là 101, 102 và 103.
SELECT EmployeeNo, FirstName FROM
Employee
WHERE EmployeeNo in (101,102,103);
Truy vấn trên trả về các bản ghi sau.
*** Query completed. 3 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName
----------- ------------------------------
101 Mike
102 Robert
103 Peter
KHÔNG VÀO
Lệnh NOT IN đảo ngược kết quả của lệnh IN. Nó tìm nạp các bản ghi có giá trị không khớp với danh sách đã cho.
Thí dụ
Ví dụ sau tìm nạp các bản ghi có số nhân viên không thuộc 101, 102 và 103.
SELECT * FROM
Employee
WHERE EmployeeNo not in (101,102,103);
Truy vấn trên trả về các bản ghi sau.
*** Query completed. 2 rows found. 6 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName LastName
----------- ------------------------------ -----------------------------
104 Alex Stuart
105 Robert James