Delen via


ALL (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

Vergelijkt een scalaire waarde met een set waarden met één kolom.

Transact-SQL syntaxis-conventies

Syntax

scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )  

Arguments

scalar_expression
Is een geldige expressie.

{ = | <> | != | > | >= | !> | < | <= | !< }
Is een vergelijkingsoperator.

subquery
Is een subquery die een resultatenset van één kolom retourneert. Het gegevenstype van de geretourneerde kolom moet hetzelfde gegevenstype zijn als het gegevenstype van scalar_expression.

Is een beperkte SELECT-instructie waarin de ORDER BY-component en het INTO-trefwoord niet zijn toegestaan.

Result types

Boolean

Result value

Retourneert TRUE wanneer de opgegeven vergelijking TRUE is voor alle paren (scalar_expression, x), wanneer x een waarde is in de set met één kolom. Anders wordt ONWAAR geretourneerd.

Remarks

ALL vereist dat de scalar_expression positief vergelijkt met elke waarde die wordt geretourneerd door de subquery. Als de subquery bijvoorbeeld waarden van 2 en 3 retourneert, wordt scalar_expression<= ALL (subquery) geëvalueerd als WAAR voor een scalar_expression van 2. Als de subquery waarden van 2 en 3 retourneert, zou scalar_expression = ALL (subquery) ONWAAR zijn, omdat sommige waarden van de subquery (de waarde 3) niet voldoen aan de criteria van de expressie.

Zie SOME | voor instructies waarvoor de scalar_expression positief moet worden vergeleken met slechts één waarde die wordt geretourneerd door de subquery . ANY (Transact-SQL).

Als u de gelijkheid van twee expressies wilt vergelijken en een waar of onwaar resultaat wilt garanderen, raadpleegt u IS [NIET] DISTINCT FROM (Transact-SQL).

Dit artikel verwijst naar ALL wanneer deze wordt gebruikt met een subquery. ALL kan ook worden gebruikt met UNION en SELECT.

Examples

In het volgende voorbeeld wordt een opgeslagen procedure gemaakt waarmee wordt bepaald of alle onderdelen van een opgegeven SalesOrderID in de AdventureWorks2022-database in het opgegeven aantal dagen kunnen worden vervaardigd. In het voorbeeld wordt een subquery gebruikt om een lijst te maken met het aantal DaysToManufacture waarden voor alle onderdelen van de specifieke SalesOrderID, en bevestigt vervolgens dat alle DaysToManufacture waarden binnen het opgegeven aantal dagen zijn opgegeven.

-- 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.' ;  

Als u de procedure wilt testen, voert u de procedure uit met behulp van de SalesOrderID 49080, die één onderdeel heeft dat dagen vereist 2 en twee onderdelen die 0 dagen vereisen. De eerste instructie hieronder voldoet aan de criteria. De tweede query niet.

EXECUTE DaysToBuild 49080, 2 ;  

Hier is het resultatenoverzicht.

All items for this order can be manufactured in specified number of days or less.

EXECUTE DaysToBuild 49080, 1 ;  

Hier is het resultatenoverzicht.

Some items for this order can't be manufactured in specified number of days or less.

See also