CASE (Entitets-SQL)
Utvärderar en uppsättning Boolean
uttryck för att fastställa resultatet.
Syntax
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argument
n
Är en platshållare som anger att flera WHEN THEN-satser Boolean_expression
result_expression
kan användas.
THEN result_expression
Returneras uttrycket när Boolean_expression
utvärderas till true
. result expression
är ett giltigt uttryck.
ELSE else_result_expression
Returneras uttrycket om ingen jämförelseåtgärd utvärderas till true
. Om det här argumentet utelämnas och ingen jämförelseåtgärd utvärderas till true
returnerar CASE null. else_result_expression
är ett giltigt uttryck. Datatyperna för else_result_expression
och måste result_expression
vara desamma eller vara en implicit konvertering.
WHEN Boolean_expression
Utvärderas Boolean
uttrycket när det sökta CASE-formatet används. Boolean_expression
är ett giltigt Boolean
uttryck.
Returvärde
Returnerar den högsta prioritetstypen från uppsättningen med typer i result_expression
och den valfria else_result_expression
.
Kommentarer
Entitets-SQL-skiftlägesuttrycket liknar transact-SQL-skiftlägesuttrycket. Du använder skiftlägesuttrycket för att göra en serie villkorsstyrda tester för att avgöra vilket uttryck som ska ge lämpligt resultat. Den här formen av skiftlägesuttrycket gäller för en serie med ett eller flera Boolean
uttryck för att fastställa rätt resulterande uttryck.
FUNKTIONEN CASE utvärderas för varje WHEN-sats Boolean_expression
i den angivna ordningen och returnerar result_expression
den första Boolean_expression
som utvärderas till true
. De återstående uttrycken utvärderas inte. Om inget Boolean_expression
utvärderas till true
returnerar else_result_expression
databasmotorn om en ELSE-sats har angetts eller ett null-värde om ingen ELSE-sats har angetts.
En CASE-instruktion kan inte returnera en multiuppsättning.
Exempel
Följande SQL-entitetsfråga använder CASE-uttrycket för att utvärdera en uppsättning Boolean
uttryck för att fastställa resultatet. Frågan baseras på AdventureWorks försäljningsmodell. Följ dessa steg för att kompilera och köra den här frågan:
Följ proceduren i Så här kör du en fråga som returnerar PrimitiveType-resultat.
Skicka följande fråga som ett argument till
ExecutePrimitiveTypeQuery
metoden:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END