Subkueri SQL

Penting: Artikel ini adalah terjemahan mesin, lihat penafian. Temukan versi bahasa Inggris artikel di sini sebagai rujukan Anda.

Subkueri adalah pernyataan SELECT yang ditumpuk dalam PILIH, PILIH … KE, MASUKKAN... Pernyataan INTO, MENGHAPUS, atau PEMBARUAN atau di dalam subkueri lain.

Sintaksis

Anda bisa menggunakan tiga bentuk sintaks untuk membuat subkueri:

perbandingan [APA PUN | SEMUA | BEBERAPA] (sqlstatement)

ekspresi [TIDAK] DI (sqlstatement)

[TIDAK] EXISTS (sqlstatement)

Subkueri memiliki bagian berikut ini:

Bagian

Deskripsi

perbandingan

ekspresi dan operator perbandingan yang membandingkan ekspresi dengan hasil subkueri.

ekspresi

Ekspresi yang dicari dalam serangkaian hasil subkueri.

sqlstatement

Pernyataan SELECT, mengikuti aturan dan format yang sama sebagai apa pun pernyataan SELECT lainnya. Harus dimasukkan dalam tanda kurung.


Keterangan

Anda bisa menggunakan subkueri sebagai ganti ekspresi dalam daftar bidang pernyataan SELECT atau di TEMPAT atau klausa HAVING. Dalam subkueri, Anda menggunakan pernyataan SELECT untuk menyediakan sekumpulan satu atau beberapa nilai tertentu untuk mengevaluasi di MANA atau MENGALAMI klausa ekspresi.

Gunakan apa PUN atau BEBERAPA predikat, yang merupakan sinonim untuk mengambil rekaman dalam kueri utama yang memenuhi perbandingan dengan catatan yang telah diambil di subkueri. Contoh berikut mengembalikan semua produk harga satuan yang lebih besar dari semua produk yang terjual di diskon 25% atau lebih:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Menggunakan predikat SEMUA untuk mendapatkan hanya itu rekaman dalam kueri utama yang memenuhi perbandingan dengan semua rekaman yang diambil di subkueri. Jika Anda mengubah apa PUN ke SEMUA dalam contoh sebelumnya, kueri akan mengembalikan hanya produk tersebut harga satuan yang lebih besar dari semua produk yang terjual di diskon 25% atau lebih. Ini akan lebih membatasi.

Menggunakan IN predikat untuk mengambil hanya itu rekaman dalam kueri utama yang beberapa rekaman dalam subkueri berisi nilai yang sama. Contoh berikut mengembalikan semua produk dengan diskon 25% atau lebih:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Sebaliknya, Anda bisa menggunakan NOT IN untuk mengambil hanya itu rekaman dalam kueri utama yang tidak ada rekaman dalam subkueri berisi nilai yang sama.

Gunakan EXISTS predikat (dengan TIDAK opsional milik word) dalam benar/salah perbandingan untuk menentukan apakah subkueri mengembalikan semua catatan.

Anda juga bisa menggunakan alias nama tabel di subkueri untuk merujuk ke tabel yang tercantum dalam klausa FROM luar subkueri. Contoh berikut mengembalikan nama karyawan yang gaji sama atau lebih besar dari gaji rata-rata semua karyawan yang jabatan pekerjaan yang sama. Tabel karyawan diberikan alias "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Dalam contoh sebelumnya, AS kata khusus opsional.

Beberapa subkueri yang diperbolehkan dalam kueri tab silang — khususnya, sebagai predikat (yang berada di klausa WHERE). Subkueri sebagai output (mereka di daftar PILIH) tidak diperbolehkan di kueri tab silang.



Catatan: Penafian Terjemahan Mesin: Artikel ini telah diterjemahan oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan terjemahan mesin ini untuk membantu pengguna yang bukan penutur bahasa Inggris agar dapat menikmati konten tentang produk, layanan, dan teknologi Microsoft. Karena artikel ini diterjemahkan oleh mesin, mungkin akan terdapat kesalahan kosa kata, sintaksis, atau tata bahasa.

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×