Udostępnij za pośrednictwem


CASE (Entity SQL)

Oblicza zestaw Boolean wyrażeń w celu określenia wyniku.

Składnia

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

Argumenty

n Jest symbolem zastępczym wskazującym, że można użyć wielu klauzul WHEN Boolean_expression THEN result_expression .

NASTĘPNIE result_expression czy wyrażenie jest zwracane podczas Boolean_expression oceniania wartości .true result expression jest dowolnym prawidłowym wyrażeniem.

ELSE else_result_expression — wyrażenie jest zwracane, jeśli żadna operacja porównania nie daje wartości .true Jeśli ten argument zostanie pominięty, a żadna operacja porównania nie zwróci truewartości null, funkcja CASE zwróci wartość null. else_result_expression jest dowolnym prawidłowym wyrażeniem. Typy else_result_expression danych i wszystkie result_expression muszą być takie same lub muszą być niejawną konwersją.

WHEN Boolean_expression To wyrażenie jest obliczane Boolean , gdy jest używany wyszukiwany format CASE. Boolean_expression jest dowolnym prawidłowym Boolean wyrażeniem.

Wartość zwracana

Zwraca najwyższy typ pierwszeństwa z zestawu typów w elemencie result_expression i opcjonalnym else_result_expression.

Uwagi

Wyrażenie przypadku Entity SQL przypomina wyrażenie przypadku języka Transact-SQL. Wyrażenie przypadku służy do tworzenia serii testów warunkowych w celu określenia, które wyrażenie zwróci odpowiedni wynik. Ta forma wyrażenia przypadku ma zastosowanie do serii co najmniej jednego Boolean wyrażenia w celu określenia poprawnego wyrażenia wynikowego.

Funkcja CASE oblicza Boolean_expression dla każdej klauzuli WHEN w określonej kolejności i zwraca result_expression pierwszy Boolean_expression element, który daje wartość .true Pozostałe wyrażenia nie są obliczane. Jeśli wartość nie Boolean_expression ma wartości true, aparat bazy danych zwraca else_result_expression wartość , jeśli określono klauzulę ELSE lub wartość null, jeśli nie określono klauzuli ELSE.

Instrukcja CASE nie może zwrócić wielozestawu.

Przykład

Następujące zapytanie Entity SQL używa wyrażenia CASE do oceny zestawu Boolean wyrażeń w celu określenia wyniku. Zapytanie jest oparte na modelu AdventureWorks Sales. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:

  1. Postępuj zgodnie z procedurą w temacie Instrukcje: Wykonywanie zapytania zwracającego wyniki Typ pierwotny.

  2. Przekaż następujące zapytanie jako argument do ExecutePrimitiveTypeQuery metody :

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

Zobacz też