Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Skaler değeri tek sütunlu bir değer kümesiyle karşılaştırır. SOME ve ANY eşdeğerdir.
Transact-SQL söz dizimi kuralları
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< }
{ SOME | ANY } ( subquery )
Arguments
scalar_expression
Geçerli bir ifadedir.
{ = | <> | != | > | >= | !> | < | <= | !< }
Geçerli bir karşılaştırma işlecidir.
BAZI | HERHANGİ
Karşılaştırma yapılması gerektiğini belirtir.
subquery
Bir sütundan oluşan bir sonuç kümesine sahip bir alt sorgudur. Döndürülen sütunun veri türü scalar_expression ile aynı veri türü olmalıdır.
Sonuç türleri
Boolean
Sonuç değeri
BELIRTILEN karşılaştırma herhangi bir çift için DOĞRU olduğunda (scalar_expression, x), x tek sütunlu kümedeki bir değer olduğunda, SOME veya ANY, TRUE döndürür; aksi takdirde YANLIŞ döndürür.
Remarks
SOME, scalar_expression pozitif olarak alt sorgu tarafından döndürülen en az bir değerle karşılaştırmasını gerektirir. alt sorgu tarafından döndürülen her değerle pozitif olarak karşılaştırmak için scalar_expression gerektiren deyimler için bkz. ALL (Transact-SQL). Örneğin, alt sorgu 2 ve 3 değerlerini döndürürse, scalar_expression = BAZI (alt sorgu) 2 scalar_express için DOĞRU olarak değerlendirilir. Alt sorgu 2 ve 3 değerlerini döndürürse, alt sorgunun bazı değerleri (3 değeri) ifadenin ölçütlerini karşılamayacağından scalar_expression = TÜMÜ (alt sorgu) YANLIŞ olarak değerlendirilir.
Examples
A. Basit bir örnek çalıştırma
Aşağıdaki deyimler basit bir tablo oluşturur ve sütuna 1 , 2, 3ve 4 değerlerini IDekler.
CREATE TABLE T1
(ID INT) ;
GO
INSERT T1 VALUES (1) ;
INSERT T1 VALUES (2) ;
INSERT T1 VALUES (3) ;
INSERT T1 VALUES (4) ;
Aşağıdaki sorgu, tablodaki bazı değerlerden daha az olduğundan döndürür TRUE3 .
IF 3 < SOME (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
Aşağıdaki sorgu, tablodaki tüm değerlerden küçük olmadığından döndürür FALSE3 .
IF 3 < ALL (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
B. Pratik bir örnek çalıştırma
Aşağıdaki örnek, veritabanında belirtilen SalesOrderIDAdventureWorks2025 bir öğesinin tüm bileşenlerinin belirtilen gün sayısı içinde üretilip üretilemeyeceğini belirleyen bir saklı yordam oluşturur. Örnek, belirli DaysToManufacturebir öğesinin tüm bileşenleri için değer sayısının SalesOrderID listesini oluşturmak için bir alt sorgu kullanır ve ardından alt sorgu tarafından döndürülen değerlerden herhangi birinin belirtilen gün sayısından büyük olup olmadığını test eder. Döndürülen her değer DaysToManufacture sağlanan sayıdan küçükse koşul DOĞRU olur ve ilk ileti yazdırılır.
-- 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.' ;
Yordamı test etmek için, gün gerektiren bir bileşene ve 0 gün gerektiren SalesOrderID``49080 iki bileşene sahip olan komutunu kullanarak 2yordamı yürütür. İlk deyim ölçütleri karşılar. İkinci sorgu bunu yapmaz.
EXECUTE ManyDaysToComplete 49080, 2 ;
Sonuç kümesi aşağıdadır.
All items for this order can be manufactured in the specified number of days or less.
EXECUTE ManyDaysToComplete 49080, 1 ;
Sonuç kümesi aşağıdadır.
At least one item for this order can't be manufactured in specified number of days.