Bagikan melalui


SEMUA (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Membandingkan nilai skalar dengan sekumpulan nilai kolom tunggal.

Konvensi sintaks transact-SQL

Sintaks

scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )  

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 set hasilnya.

All items for this order can be manufactured in specified number of days or less.

EXECUTE DaysToBuild 49080, 1 ;  

Berikut set hasilnya.

Some items for this order can't be manufactured in specified number of days or less.

Lihat juga