Teradata - Toán tử SET
Toán tử SET kết hợp các kết quả từ nhiều câu lệnh SELECT. Điều này có thể trông tương tự như Tham gia, nhưng kết hợp kết hợp các cột từ nhiều bảng trong khi toán tử SET kết hợp các hàng từ nhiều hàng.
Quy tắc
Số cột từ mỗi câu lệnh SELECT phải giống nhau.
Các kiểu dữ liệu từ mỗi SELECT phải tương thích.
ORDER BY chỉ nên được đưa vào câu lệnh SELECT cuối cùng.
LIÊN HIỆP
Câu lệnh UNION được sử dụng để kết hợp các kết quả từ nhiều câu lệnh SELECT. Nó bỏ qua các bản sao.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh UNION.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Thí dụ
Hãy xem xét bảng nhân viên và bảng lương 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 |
Nhân viên Không | Tổng | Khấu trừ | NetPay |
---|---|---|---|
101 | 40.000 | 4.000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5.000 | 70.000 |
Truy vấn UNION sau đây kết hợp giá trị EmployeeNo từ cả bảng Employee và Salary.
SELECT EmployeeNo
FROM
Employee
UNION
SELECT EmployeeNo
FROM
Salary;
Khi truy vấn được thực thi, nó tạo ra kết quả sau.
EmployeeNo
-----------
101
102
103
104
105
ĐOÀN KẾT TẤT CẢ
Câu lệnh UNION ALL tương tự như UNION, nó kết hợp các kết quả từ nhiều bảng bao gồm các hàng trùng lặp.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh UNION ALL.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION ALL
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Thí dụ
Sau đây là một ví dụ cho câu lệnh UNION ALL.
SELECT EmployeeNo
FROM
Employee
UNION ALL
SELECT EmployeeNo
FROM
Salary;
Khi truy vấn trên được thực thi, nó tạo ra kết quả sau. Bạn có thể thấy rằng nó cũng trả về các bản sao.
EmployeeNo
-----------
101
104
102
105
103
101
104
102
103
GIAO NHAU
Lệnh INTERSECT cũng được sử dụng để kết hợp các kết quả từ nhiều câu lệnh SELECT. Nó trả về các hàng từ câu lệnh SELECT đầu tiên có khớp tương ứng trong các câu lệnh SELECT thứ hai. Nói cách khác, nó trả về các hàng tồn tại trong cả hai câu lệnh SELECT.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh INTERSECT.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
INTERSECT
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Thí dụ
Sau đây là một ví dụ về câu lệnh INTERSECT. Nó trả về giá trị EmployeeNo tồn tại trong cả hai bảng.
SELECT EmployeeNo
FROM
Employee
INTERSECT
SELECT EmployeeNo
FROM
Salary;
Khi truy vấn trên được thực thi, nó sẽ trả về các bản ghi sau. EmployeeNo 105 bị loại trừ vì nó không tồn tại trong bảng SALARY.
EmployeeNo
-----------
101
104
102
103
TRỪ / TRỪ
Lệnh MINUS / EXCEPT kết hợp các hàng từ nhiều bảng và trả về các hàng nằm trong SELECT đầu tiên nhưng không có trong SELECT thứ hai. Cả hai đều trả về cùng một kết quả.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh MINUS.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
MINUS
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Thí dụ
Sau đây là một ví dụ về câu lệnh MINUS.
SELECT EmployeeNo
FROM
Employee
MINUS
SELECT EmployeeNo
FROM
Salary;
Khi truy vấn này được thực thi, nó trả về bản ghi sau.
EmployeeNo
-----------
105