Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Membandingkan nilai skalar dengan sekumpulan nilai kolom tunggal. BEBERAPA dan APA PUN setara.
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< }
{ SOME | ANY } ( subquery )
Arguments
scalar_expression
Adalah ekspresi yang valid.
{ = | <> | != | > | >= | !> | < | <= | !< }
Adalah operator perbandingan yang valid.
BEBERAPA | APA SAJA
Menentukan bahwa perbandingan harus dibuat.
subquery
Adalah subkueri yang memiliki kumpulan hasil dari satu kolom. Jenis data kolom yang dikembalikan harus tipe data yang sama dengan scalar_expression.
Jenis hasil
Boolean
Nilai hasil
SOME atau ANY mengembalikan TRUE ketika perbandingan yang ditentukan adalah TRUE untuk pasangan apa pun (scalar_expression, x) di mana x adalah nilai dalam kumpulan kolom tunggal; jika tidak, mengembalikan FALSE.
Remarks
BEBERAPA mengharuskan scalar_expression membandingkan secara positif dengan setidaknya satu nilai yang dikembalikan oleh subkueri. Untuk pernyataan yang mengharuskan scalar_expression membandingkan secara positif dengan setiap nilai yang dikembalikan oleh subkueri, lihat SEMUA (Transact-SQL). Misalnya, jika subkueri mengembalikan nilai 2 dan 3, scalar_expression = SOME (subkueri) akan dievaluasi sebagai TRUE untuk scalar_express 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.
Examples
A. Menjalankan contoh sederhana
Pernyataan berikut membuat tabel sederhana dan menambahkan nilai 1, , 23, dan 4 ke ID kolom .
CREATE TABLE T1
(ID INT) ;
GO
INSERT T1 VALUES (1) ;
INSERT T1 VALUES (2) ;
INSERT T1 VALUES (3) ;
INSERT T1 VALUES (4) ;
Kueri berikut mengembalikan TRUE karena 3 kurang dari beberapa nilai dalam tabel.
IF 3 < SOME (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
Kueri berikut mengembalikan FALSE karena 3 tidak kurang dari semua nilai dalam tabel.
IF 3 < ALL (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
B. Menjalankan contoh praktis
Contoh berikut membuat prosedur tersimpan yang menentukan apakah semua komponen yang ditentukan SalesOrderID dalam AdventureWorks2025 database dapat diproduksi dalam jumlah hari yang ditentukan. Contoh menggunakan subkueri untuk membuat daftar jumlah DaysToManufacture nilai untuk semua komponen tertentu SalesOrderID, lalu menguji apakah salah satu nilai yang dikembalikan oleh subkueri lebih besar dari jumlah hari yang ditentukan. Jika setiap nilai DaysToManufacture yang dikembalikan kurang dari angka yang disediakan, kondisinya adalah TRUE dan pesan pertama dicetak.
-- Uses AdventureWorks
CREATE PROCEDURE ManyDaysToComplete @OrderID INT, @NumberOfDays INT
AS
IF
@NumberOfDays < SOME
(
SELECT DaysToManufacture
FROM Sales.SalesOrderDetail
JOIN Production.Product
ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
WHERE SalesOrderID = @OrderID
)
PRINT 'At least one item for this order can''t be manufactured in specified number of days.'
ELSE
PRINT 'All items for this order can be manufactured in the specified number of days or less.' ;
Untuk menguji prosedur, jalankan prosedur dengan menggunakan SalesOrderID``49080, yang memiliki satu komponen yang memerlukan 2 hari dan dua komponen yang membutuhkan 0 hari. Pernyataan pertama memenuhi kriteria. Kueri kedua tidak.
EXECUTE ManyDaysToComplete 49080, 2 ;
Berikut set hasilnya.
All items for this order can be manufactured in the specified number of days or less.
EXECUTE ManyDaysToComplete 49080, 1 ;
Berikut set hasilnya.
At least one item for this order can't be manufactured in specified number of days.