SEMUA (T-SQL)
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Membandingkan nilai skalar dengan sekumpulan nilai kolom tunggal.
Sintaksis
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
scalar_expression
Adalah ekspresi yang valid.
{ = | <> | != | > | >= | !> | < | <= | !< }
Adalah operator perbandingan.
kueri bertumpuk
Adalah subkueri yang mengembalikan kumpulan hasil dari satu kolom. Jenis data kolom yang dikembalikan harus tipe data yang sama dengan jenis data scalar_expression.
Adalah pernyataan SELECT terbatas, di mana klausa ORDER BY dan kata kunci INTO tidak diizinkan.
Jenis hasil
Boolean
Nilai hasil
Mengembalikan TRUE ketika perbandingan yang ditentukan adalah TRUE untuk semua pasangan (scalar_expression, x), ketika x adalah nilai dalam kumpulan kolom tunggal. Jika tidak, mengembalikan FALSE.
Keterangan
ALL mengharuskan scalar_expression membandingkan secara positif dengan setiap nilai yang dikembalikan oleh subkueri. Misalnya, jika subkueri mengembalikan nilai 2 dan 3, scalar_expression<= ALL (subkueri) akan dievaluasi sebagai TRUE untuk scalar_expression 2. Jika subkueri mengembalikan nilai 2 dan 3, scalar_expression = ALL (subkueri) akan dievaluasi sebagai FALSE, karena beberapa nilai subkueri (nilai 3) tidak akan memenuhi kriteria ekspresi.
Untuk pernyataan yang mengharuskan scalar_expression membandingkan secara positif hanya dengan satu nilai yang dikembalikan oleh subkueri, lihat BEBERAPA | ANY (Transact-SQL).
Untuk membandingkan kesetaraan dua ekspresi dan menjamin hasil yang benar atau salah, lihat IS [NOT] DISTINCT FROM (Transact-SQL).
Artikel ini mengacu pada ALL saat digunakan dengan subkueri. SEMUA juga dapat digunakan dengan UNION dan SELECT.
Contoh
Contoh berikut membuat prosedur tersimpan yang menentukan apakah semua komponen yang ditentukan SalesOrderID
dalam database AdventureWorks2022 dapat diproduksi dalam jumlah hari yang ditentukan. Contoh menggunakan subkueri untuk membuat daftar jumlah DaysToManufacture
nilai untuk semua komponen tertentu SalesOrderID
, lalu mengonfirmasi bahwa semua DaysToManufacture
berada dalam jumlah hari yang ditentukan.
-- Uses AdventureWorks
CREATE PROCEDURE DaysToBuild @OrderID INT, @NumberOfDays INT
AS
IF
@NumberOfDays >= ALL
(
SELECT DaysToManufacture
FROM Sales.SalesOrderDetail
JOIN Production.Product
ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
WHERE SalesOrderID = @OrderID
)
PRINT 'All items for this order can be manufactured in specified number of days or less.'
ELSE
PRINT 'Some items for this order can''t be manufactured in specified number of days or less.' ;
Untuk menguji prosedur, jalankan prosedur dengan menggunakan SalesOrderID 49080
, yang memiliki satu komponen yang membutuhkan 2
hari dan dua komponen yang membutuhkan 0 hari. Pernyataan pertama di bawah ini memenuhi kriteria. Kueri kedua tidak.
EXECUTE DaysToBuild 49080, 2 ;
Berikut adalah hasil yang ditetapkan.
All items for this order can be manufactured in specified number of days or less.
EXECUTE DaysToBuild 49080, 1 ;
Berikut adalah hasil yang ditetapkan.
Some items for this order can't be manufactured in specified number of days or less.