Teradata - SubQueries

Subkueri mengembalikan rekaman dari satu tabel berdasarkan nilai dari tabel lain. Ini adalah kueri SELECT di dalam kueri lain. Kueri SELECT yang disebut sebagai kueri dalam dijalankan terlebih dahulu dan hasilnya digunakan oleh kueri luar. Beberapa fiturnya yang menonjol adalah -

  • Kueri bisa memiliki beberapa subkueri dan subkueri mungkin berisi subkueri lain.

  • Subkueri tidak mengembalikan rekaman duplikat.

  • Jika subkueri hanya mengembalikan satu nilai, Anda bisa menggunakan = operator untuk menggunakannya dengan kueri luar. Jika mengembalikan beberapa nilai, Anda dapat menggunakan IN atau NOT IN.

Sintaksis

Berikut ini adalah sintaks umum subkueri.

SELECT col1, col2, col3,… 
FROM  
Outer Table 
WHERE col1 OPERATOR ( Inner SELECT Query);

Contoh

Perhatikan tabel Gaji berikut.

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 berikut mengidentifikasi nomor karyawan dengan gaji tertinggi. SELECT bagian dalam melakukan fungsi agregasi untuk mengembalikan nilai NetPay maksimum dan kueri SELECT luar menggunakan nilai ini untuk mengembalikan data karyawan dengan nilai ini.

SELECT EmployeeNo, NetPay 
FROM Salary 
WHERE NetPay =  
(SELECT MAX(NetPay)  
FROM Salary);

Ketika kueri ini dijalankan, itu menghasilkan keluaran berikut.

*** Query completed. One row found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo     NetPay 
-----------  ----------- 
    103         83000