Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Jämför ett skalärt värde med en uppsättning värden med en kolumn.
Transact-SQL syntaxkonventioner
Syntax
scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )
Arguments
scalar_expression
Är ett giltigt uttryck.
{ = | <> | != | > | >= | !> | < | <= | !< }
Är en jämförelseoperator.
subquery
Är en underfråga som returnerar en resultatuppsättning med en kolumn. Datatypen för den returnerade kolumnen måste vara samma datatyp som datatypen för scalar_expression.
Är en begränsad SELECT-instruktion där ORDER BY-satsen och NYCKELORDET INTO inte tillåts.
Result types
Boolean
Result value
Returnerar TRUE när den angivna jämförelsen är TRUE för alla par (scalar_expression, x), när x är ett värde i uppsättningen med en kolumn. Annars returneras FALSE.
Remarks
ALLA kräver att scalar_expression jämför positivt med varje värde som returneras av underfrågan. Om underfrågan till exempel returnerar värdena 2 och 3 utvärderas scalar_expression<= ALL (underfråga) som TRUE för en scalar_expression på 2. Om underfrågan returnerar värden på 2 och 3 skulle scalar_expression = ALL (underfråga) utvärderas som FALSE, eftersom vissa av värdena för underfrågan (värdet 3) inte uppfyller uttryckets villkor.
Instruktioner som kräver att scalar_expression jämför positivt med endast ett värde som returneras av underfrågan finns i SOME | ANY (Transact-SQL).
Om du vill jämföra likheten mellan två uttryck och garantera ett sant eller falskt resultat läser du IS [NOT] DISTINCT FROM (Transact-SQL).
Den här artikeln refererar till ALLA när den används med en underfråga. ALLA kan också användas med UNION och SELECT.
Examples
I följande exempel skapas en lagrad procedur som avgör om alla komponenter i en angiven SalesOrderID databas i AdventureWorks2022 kan tillverkas under det angivna antalet dagar. I exemplet används en underfråga för att skapa en lista över antalet DaysToManufacture värden för alla komponenter i den specifika SalesOrderIDoch bekräftar sedan att alla DaysToManufacture är inom det angivna antalet dagar.
-- Uses AdventureWorks
CREATE PROCEDURE DaysToBuild @OrderID INT, @NumberOfDays INT
AS
IF
@NumberOfDays >= ALL
(
SELECT DaysToManufacture
FROM Sales.SalesOrderDetail
JOIN Production.Product
ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID
WHERE SalesOrderID = @OrderID
)
PRINT 'All items for this order can be manufactured in specified number of days or less.'
ELSE
PRINT 'Some items for this order can''t be manufactured in specified number of days or less.' ;
Om du vill testa proceduren kör du proceduren SalesOrderID 49080med hjälp av , som har en komponent som kräver 2 dagar och två komponenter som kräver 0 dagar. Den första instruktionen nedan uppfyller kriterierna. Den andra frågan gör det inte.
EXECUTE DaysToBuild 49080, 2 ;
Här är resultatet.
All items for this order can be manufactured in specified number of days or less.
EXECUTE DaysToBuild 49080, 1 ;
Här är resultatet.
Some items for this order can't be manufactured in specified number of days or less.