Teradata - Operator SET
Operator SET menggabungkan hasil dari beberapa pernyataan SELECT. Ini mungkin terlihat mirip dengan Gabungan, tetapi gabungan menggabungkan kolom dari beberapa tabel sedangkan operator SET menggabungkan baris dari beberapa baris.
Aturan
Jumlah kolom dari setiap pernyataan SELECT harus sama.
Tipe data dari setiap SELECT harus kompatibel.
ORDER BY harus disertakan hanya dalam pernyataan SELECT terakhir.
PERSATUAN
Pernyataan UNION digunakan untuk menggabungkan hasil dari beberapa pernyataan SELECT. Ini mengabaikan duplikat.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan UNION.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Contoh
Perhatikan tabel karyawan dan tabel gaji berikut.
KaryawanNo | Nama depan | Nama keluarga | JoinedDate | DepartemenNo | Tanggal lahir |
---|---|---|---|---|---|
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 | 1/4/1983 |
104 | Alex | Stuart | 1/2/2008 | 2 | 6/11/1984 |
105 | Robert | James | 1/4/2008 | 3 | 1/12/1984 |
KaryawanNo | Kotor | Deduksi | Gaji bersih |
---|---|---|---|
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 |
Kueri UNION berikut menggabungkan nilai EmployeeNo dari tabel Employee dan Gaji.
SELECT EmployeeNo
FROM
Employee
UNION
SELECT EmployeeNo
FROM
Salary;
Ketika kueri dijalankan, itu menghasilkan keluaran berikut.
EmployeeNo
-----------
101
102
103
104
105
UNI SEMUA
Pernyataan UNION ALL mirip dengan UNION, ini menggabungkan hasil dari beberapa tabel termasuk baris duplikat.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan UNION ALL.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION ALL
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Contoh
Berikut adalah contoh pernyataan UNION ALL.
SELECT EmployeeNo
FROM
Employee
UNION ALL
SELECT EmployeeNo
FROM
Salary;
Ketika query di atas dijalankan, itu menghasilkan keluaran sebagai berikut. Anda dapat melihat bahwa ia juga mengembalikan duplikat.
EmployeeNo
-----------
101
104
102
105
103
101
104
102
103
MEMOTONG
Perintah INTERSECT juga digunakan untuk menggabungkan hasil dari beberapa pernyataan SELECT. Ini mengembalikan baris dari pernyataan SELECT pertama yang memiliki kecocokan yang sesuai dalam pernyataan SELECT kedua. Dengan kata lain, ini mengembalikan baris yang ada di kedua pernyataan SELECT.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan INTERSECT.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
INTERSECT
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Contoh
Berikut adalah contoh pernyataan INTERSECT. Ini mengembalikan nilai EmployeeNo yang ada di kedua tabel.
SELECT EmployeeNo
FROM
Employee
INTERSECT
SELECT EmployeeNo
FROM
Salary;
Ketika query di atas dijalankan, ia mengembalikan record berikut. EmployeeNo 105 dikecualikan karena tidak ada di tabel SALARY.
EmployeeNo
-----------
101
104
102
103
MINUS / KECUALI
MINUS / EXCEPT perintah menggabungkan baris dari beberapa tabel dan mengembalikan baris yang ada di SELECT pertama tetapi tidak di SELECT kedua. Keduanya memberikan hasil yang sama.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan MINUS.
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
MINUS
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
Contoh
Berikut adalah contoh pernyataan MINUS.
SELECT EmployeeNo
FROM
Employee
MINUS
SELECT EmployeeNo
FROM
Salary;
Saat kueri ini dijalankan, ia mengembalikan rekaman berikut.
EmployeeNo
-----------
105