Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Subkueri adalah pernyataan SELECT yang ditumpuk di dalam SELECT, SELECT... INTO, INSERT... Pernyataan INTO, DELETE, atau UPDATE atau di dalam subkueri lain.

Sintaks

Anda dapat menggunakan tiga bentuk sintaks untuk membuat subkueri:

perbandingan [ANY | SEMUA | SOME] (sqlstatement)

expression [NOT] IN (sqlstatement)

[TIDAK] EXISTS (sqlstatement)

Subkueri memiliki bagian ini:

Bagian

Deskripsi

Perbandingan

ekspresi dan operator perbandingan yang membandingkan ekspresi dengan hasil subkueri.

ekspresi

Ekspresi di mana kumpulan hasil subkueri dicari.

pernyataansql

Pernyataan SELECT, mengikuti format dan aturan yang sama seperti pernyataan SELECT lainnya. Ini harus dimasukkan dalam tanda kurung.


Keterangan

Anda dapat menggunakan subkueri, bukan ekspresi dalam daftar bidang pernyataan SELECT atau dalam klausul WHERE atau HAVING. Dalam subkueri, Anda menggunakan pernyataan SELECT untuk menyediakan sekumpulan nilai tertentu atau lebih untuk dievaluasi dalam ekspresi klausul WHERE atau HAVING.

Gunakan predikat ANY atau SOME, yang identik, untuk mengambil rekaman dalam kueri utama yang memenuhi perbandingan dengan rekaman apa pun yang diambil dalam subkueri. Contoh berikut mengembalikan semua produk yang harga satuannya lebih besar dari produk apa pun yang dijual dengan diskon 25 persen atau lebih:

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

Gunakan predikat ALL untuk mengambil hanya rekaman tersebut dalam kueri utama yang memenuhi perbandingan dengan semua rekaman yang diambil dalam subkueri. Jika Anda mengubah ANY ke ALL dalam contoh sebelumnya, kueri hanya akan mengembalikan produk yang harga satuannya lebih besar dari semua produk yang dijual dengan diskon 25 persen atau lebih. Ini jauh lebih terbatas.

Gunakan predikat IN untuk mengambil hanya rekaman tersebut dalam kueri utama di mana beberapa rekaman dalam subkueri berisi nilai yang sama. Contoh berikut mengembalikan semua produk dengan diskon 25 persen atau lebih:

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

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

Gunakan predikat EXISTS (dengan kata khusus NOT opsional) dalam perbandingan true/false untuk menentukan apakah subkueri mengembalikan rekaman apa pun.

Anda juga dapat menggunakan alias nama tabel dalam subkueri untuk merujuk ke tabel yang tercantum dalam klausul FROM di luar subkueri. Contoh berikut mengembalikan nama karyawan yang gajinya sama dengan atau lebih besar dari gaji rata-rata semua karyawan yang memiliki jabatan yang sama. Tabel Karyawan diberi 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, kata khusus AS bersifat opsional.

Beberapa subkueri diperbolehkan dalam kueri tab silang — khususnya, sebagai predikat (yang ada dalam klausul WHERE). Subkueri sebagai output (yang ada dalam daftar SELECT) tidak diperbolehkan dalam kueri tab silang.



Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×