NIEKTÓRE | WSZELKIE (Transact-SQL)
Porównuje wartość wartość skalarna z jedno -kolumna zestaw wartości.Niektóre i wszystkie są równoważne.
Składnia
scalar_expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
{ SOME | ANY } ( subquery )
Argumenty
scalar_expression
Wszelkie obowiązuje wyrażenie.{ = | <> | != | > | >= | !> | < | <= | !< }
Jest dowolny prawidłowy porównania operator.NIEKTÓRE | WSZELKIE
Określa, że należy dokonać porównania.subquery
To jest zestaw wyników jedną kolumna podzapytanie .Typ danych kolumna zwrócone muszą być tego samego typu danych jako scalar_expression.
Typy wyników
Boolean
Wartość wyniku
Zwraca niektóre lub wszystkie TRUE podczas porównywania określonych ma wartość TRUE dla każdej pary (scalar_expression**,**x) w przypadku gdy x jest wartością w jedno -kolumna zestaw; w przeciwnym razie zwraca FALSE.
Uwagi
Niektóre wymaga scalar_expression porównywania pozytywnie co najmniej jedną wartość zwróconych przez podzapytanie.Dla instrukcji, które wymagają scalar_expression do porównywania pozwalające w jednoznaczny sposób każda wartość, która jest zwróconych przez podzapytanieZobacz WSZYSTKIE (Transact-SQL).Dla wystąpienie, jeśli podzapytanie zwraca wartości 2 i 3, scalar_expression = niektóre (podzapytanie) będą interpretowane jako wartość TRUE dla scalar_express 2.Jeśli podzapytanie zwraca wartości 2 i 3, scalar_expression = ALL (podzapytanie) będzie interpretowane jako FAŁSZ, ponieważ niektóre wartości podzapytanie (wartość 3) czy spełnia kryteria wyrażenie.
Przykłady
A.Prosty przykład uruchomiony
Poniższe instrukcje utworzyć prostą tabela i dodać wartości 1, 2, 3, i 4 do ID kolumna.
CREATE TABLE T1
(ID int) ;
GO
INSERT T1 VALUES (1) ;
INSERT T1 VALUES (2) ;
INSERT T1 VALUES (3) ;
INSERT T1 VALUES (4) ;
Następujące kwerendy zwraca TRUE ponieważ 3 jest mniejsza niż niektóre wartości w tabela.
IF 3 < SOME (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
Następujące kwerendy zwraca FALSE ponieważ 3 jest nie mniejsza niż wszystkie wartości w tabela.
IF 3 < ALL (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
B.Uruchamianie praktyczny przykład
Poniższy przykład tworzy procedura składowana , która określa, czy wszystkie składniki określonego SalesOrderID w AdventureWorks2008R2 bazy danych może być produkowana w określoną liczbę dni.W przykładzie użyto do utworzenia listy liczbę podzapytanie DaysToManufacture wartość dla wszystkich składników szczególnych SalesOrderID, a następnie sprawdza, czy dowolny z wartości zwróconych przez podzapytanie jest większa niż liczba dni określona.Jeśli wartość każdego z DaysToManufacture , zwracana jest mniejsza niż liczba pod warunkiem, warunek ma wartość PRAWDA i pierwszą wiadomość jest drukowana.
USE AdventureWorks2008R2 ;
GO
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 cannot 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ę wykonać procedury za pomocą SalesOrderID49080, która ma jeden składnik, który wymaga 2 dni i dwa składniki, które wymagają 0 dni.Pierwsza instrukcja spełnia kryteria.Nie jest drugą kwerendę.
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 cannot be manufactured in specified number of days.
Zobacz także