Delen via


CASE (Entiteit SQL)

Evalueert een set Boolean expressies om het resultaat te bepalen.

Syntaxis

CASE
     WHEN Boolean_expression THEN result_expression
    [ ...n ]
     [
    ELSE else_result_expression
     ]
END

Argumenten

n Is een tijdelijke aanduiding die aangeeft dat meerdere WHEN Boolean_expression THEN-componenten result_expression kunnen worden gebruikt.

VERVOLGENS result_expression wordt de expressie geretourneerd wanneer Boolean_expression deze truewordt geëvalueerd. result expression is een geldige expressie.

ELSE else_result_expression Is de expressie geretourneerd als er geen vergelijkingsbewerking wordt truegeëvalueerd. Als dit argument wordt weggelaten en er geen vergelijkingsbewerking wordt truegeëvalueerd, retourneert CASE null. else_result_expression is een geldige expressie. De gegevenstypen van else_result_expression en alle result_expression gegevens moeten hetzelfde zijn of moeten een impliciete conversie zijn.

WANNEER Boolean_expression wordt de Boolean expressie geëvalueerd wanneer de gezochte CASE-indeling wordt gebruikt. Boolean_expression is een geldige Boolean expressie.

Retourwaarde

Retourneert het hoogste prioriteitstype van de set typen in de result_expression en de optionele else_result_expression.

Opmerkingen

De Entiteit SQL-caseexpressie lijkt op de Transact-SQL-caseexpressie. U gebruikt de case-expressie om een reeks voorwaardelijke tests te maken om te bepalen welke expressie het juiste resultaat oplevert. Deze vorm van de case-expressie is van toepassing op een reeks van een of meer Boolean expressies om de juiste resulterende expressie te bepalen.

De functie CASE evalueert voor elke WHEN-component in de opgegeven volgorde en retourneert Boolean_expression result_expression de eerste Boolean_expression die resulteert in true. De resterende expressies worden niet geëvalueerd. Als dat niet Boolean_expression wordt geëvalueerd true, retourneert de database-engine de else_result_expression als er een ELSE-component is opgegeven of een null-waarde als er geen ELSE-component is opgegeven.

Een CASE-instructie kan geen multiset retourneren.

Opmerking

De volgende Entiteit SQL-query maakt gebruik van Boolean de CASE-expressie om een set expressies te evalueren om het resultaat te bepalen. De query is gebaseerd op het AdventureWorks Sales Model. Voer de volgende stappen uit om deze query te compileren en uit te voeren:

  1. Volg de procedure in Procedure: Voer een query uit die PrimitieveType-resultaten retourneert.

  2. Geef de volgende query als argument door aan de ExecutePrimitiveTypeQuery methode:

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END

Zie ook