Werden in der SQL Server- CASE
Anweisung (speziell 2008 oder 2012) alle WHEN
Bedingungen ausgewertet oder wird sie beendet, sobald eine WHEN
Klausel gefunden wird, die als wahr ausgewertet wird? Wenn der gesamte Bedingungssatz durchlaufen wird, bedeutet dies, dass die letzte Bedingung, die als wahr bewertet wurde, die erste Bedingung überschreibt, die als wahr bewertet wurde? Zum Beispiel:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
Das Ergebnis ist "JA", obwohl die Bedingung "Letzter Zeitpunkt" "NEIN" ergeben sollte. Es scheint, dass es beendet wird, sobald es die erste WAHR-Bedingung findet. Kann jemand bitte bestätigen, ob dies der Fall ist .
COALESCE()
in einenCASE
Ausdruck übersetzt.)