Czy instrukcja SQL Server (w szczególności 2008 lub 2012) CASE
ocenia wszystkie WHEN
warunki, czy też wychodzi, gdy znajdzie WHEN
klauzulę, która ma wartość true? Jeśli przejdzie przez cały zestaw warunków, czy to oznacza, że ostatni warunek oceniający na prawda zastępuje to, co zrobił pierwszy warunek, który oceniono na prawda? Na przykład:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
Wynikiem jest „TAK”, chociaż ostatni warunek, w którym warunek powinien dać wynik „NIE”. Wygląda na to, że kończy działanie, gdy znajdzie pierwszy PRAWDZIWY warunek. Może ktoś proszę potwierdzić, czy jest to przypadek .
COALESCE()
to tłumaczy się naCASE
wyrażenie).