Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Porównuje wartość skalarną z pojedynczym zestawem wartości. NIEKTÓRE i DOWOLNE są równoważne.
Transact-SQL konwencje składni
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< }
{ SOME | ANY } ( subquery )
Arguments
scalar_expression
Jest dowolnym prawidłowym wyrażeniem.
{ = | <> | != | > | >= | !> | < | <= | !< }
Jest dowolnym prawidłowym operatorem porównania.
NIEKTÓRE | JAKIKOLWIEK
Określa, że należy dokonać porównania.
subquery
Jest podzapytaniem zawierającym zestaw wyników jednej kolumny. Zwracany typ danych kolumny musi być tym samym typem danych co scalar_expression.
Typy wyników
Boolean
Wartość wynikowa
FUNKCJA SOME lub ANY zwraca wartość TRUE , gdy określone porównanie ma wartość TRUE dla dowolnej pary (scalar_expression, x), gdzie x jest wartością w zestawie jednokolumny; w przeciwnym razie zwraca wartość FALSE.
Remarks
NIEKTÓRE wymagają , aby scalar_expression porównać dodatnio z co najmniej jedną wartością zwracaną przez podzapytywanie. Instrukcje, które wymagają , aby scalar_expression porównać dodatnio z każdą wartością zwracaną przez podzapytanie, zobacz ALL (Transact-SQL). Jeśli na przykład podzapytywanie zwraca wartości 2 i 3, scalar_expression = SOME (podzapytywanie) zwróci wartość TRUE dla scalar_express 2. Jeśli podzapytywanie zwraca wartości 2 i 3, scalar_expression = ALL (podzapytywanie) zostanie obliczone jako FALSE, ponieważ niektóre wartości podzapytania (wartość 3) nie spełniają kryteriów wyrażenia.
Examples
A. Uruchamianie prostego przykładu
Poniższe instrukcje tworzą prostą tabelę i dodają wartości 1, 2, 3i 4 do kolumny ID .
CREATE TABLE T1
(ID INT) ;
GO
INSERT T1 VALUES (1) ;
INSERT T1 VALUES (2) ;
INSERT T1 VALUES (3) ;
INSERT T1 VALUES (4) ;
Poniższe zapytanie zwraca TRUE wartość , ponieważ 3 jest mniejsza niż niektóre wartości w tabeli.
IF 3 < SOME (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
Poniższe zapytanie zwraca FALSE wartość , ponieważ 3 nie jest mniejsza niż wszystkie wartości w tabeli.
IF 3 < ALL (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
B. Uruchamianie praktycznego przykładu
Poniższy przykład tworzy procedurę składowaną, która określa, czy wszystkie składniki określone SalesOrderID w AdventureWorks2025 bazie danych mogą być produkowane w określonej liczbie dni. W przykładzie użyto podzapytania, aby utworzyć listę liczby DaysToManufacture wartości dla wszystkich składników określonego SalesOrderIDelementu , a następnie sprawdza, czy którakolwiek z wartości zwracanych przez podzapytywanie jest większa niż określona liczba dni. Jeśli każda zwrócona DaysToManufacture wartość jest mniejsza niż podana liczba, warunek ma wartość TRUE, a pierwszy komunikat zostanie wydrukowany.
-- 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.' ;
Aby przetestować procedurę, wykonaj procedurę przy użyciu SalesOrderID``49080elementu , który ma jeden składnik, który wymaga 2 dni i dwóch składników, które wymagają 0 dni. Pierwsza instrukcja spełnia kryteria. Drugie zapytanie nie.
EXECUTE ManyDaysToComplete 49080, 2 ;
Oto zestaw wyników.
All items for this order can be manufactured in the specified number of days or less.
EXECUTE ManyDaysToComplete 49080, 1 ;
Oto zestaw wyników.
At least one item for this order can't be manufactured in specified number of days.