Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Egy skaláris értéket hasonlít össze egy egyoszlopos értékkészlettel. A SOME és az ANY egyenértékű.
Transact-SQL szintaxis konvenciók
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< }
{ SOME | ANY } ( subquery )
Arguments
scalar_expression
Bármely érvényes kifejezés.
{ = | <> | != | > | >= | !> | < | <= | !< }
Érvényes összehasonlító operátor.
NÉHÁNY | BÁRMILYEN
Megadja, hogy összehasonlítást kell-e készíteni.
subquery
Egy olyan alquery, amely egy oszlop eredményhalmazával rendelkezik. A visszaadott oszlop adattípusának meg kell egyeznie az scalar_expression adattípusával.
Eredménytípusok
Boolean
Eredményérték
A NÉHÁNY vagy bármely függvény IGAZ értéket ad vissza, ha a megadott összehasonlítás IGAZ minden olyan párhoz (scalar_expression, x), ahol az x az egyoszlopos készlet értéke; ellenkező esetben HAMIS értéket ad vissza.
Remarks
NÉHÁNY megköveteli, hogy a scalar_expression pozitívan hasonlítsa össze az al lekérdezés által visszaadott legalább egy értékkel. Azoknak az utasításoknak az esetében, amelyek megkövetelik, hogy a scalar_expression pozitívan hasonlítsák össze az al lekérdezés által visszaadott értékeket, tekintse meg az ALL (Transact-SQL) című témakört. Ha például az alkikérdezés 2 és 3 értéket ad vissza, scalar_expression = NÉHÁNY (subquery) igaz értéket ad vissza a 2-scalar_express . Ha az al lekérdezés 2 és 3 értéket ad vissza, scalar_expression = AZ ÖSSZES (subquery) értéke HAMIS, mert az alquery egyes értékei (a 3 értéke) nem felelnek meg a kifejezés feltételeinek.
Examples
A. Egyszerű példa futtatása
Az alábbi utasítások létrehoznak egy egyszerű táblát, és hozzáadják 1a , 2, 3és 4 az oszlop értékeit ID .
CREATE TABLE T1
(ID INT) ;
GO
INSERT T1 VALUES (1) ;
INSERT T1 VALUES (2) ;
INSERT T1 VALUES (3) ;
INSERT T1 VALUES (4) ;
A következő lekérdezés azért TRUE ad vissza, mert 3 kisebb, mint a tábla egyes értékei.
IF 3 < SOME (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
A következő lekérdezés azért FALSE ad vissza, mert 3 nem kisebb, mint a tábla összes értéke.
IF 3 < ALL (SELECT ID FROM T1)
PRINT 'TRUE'
ELSE
PRINT 'FALSE' ;
B. Gyakorlati példa futtatása
Az alábbi példa egy tárolt eljárást hoz létre, amely meghatározza, hogy az SalesOrderID adatbázisban megadott AdventureWorks2025 összes összetevő legyártható-e a megadott számú napon belül. A példa egy alkérdezés használatával hozza létre az adott DaysToManufactureösszetevő összes összetevőjének SalesOrderID értéklistáját, majd ellenőrzi, hogy az al lekérdezés által visszaadott értékek közül bármelyik nagyobb-e a megadott napok számánál. Ha a visszaadott érték DaysToManufacture kisebb, mint a megadott szám, a feltétel IGAZ, és az első üzenet ki lesz nyomtatva.
-- 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.' ;
Az eljárás teszteléséhez hajtsa végre az eljárást a következővel: az SalesOrderID``49080egyik összetevő napokat és két 0 napot igénylő összetevőt tartalmaz 2 . Az első utasítás megfelel a feltételeknek. A második lekérdezés nem.
EXECUTE ManyDaysToComplete 49080, 2 ;
Itt van az eredmények összessége.
All items for this order can be manufactured in the specified number of days or less.
EXECUTE ManyDaysToComplete 49080, 1 ;
Itt van az eredmények összessége.
At least one item for this order can't be manufactured in specified number of days.