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