Поделиться через


CASE (язык Entity SQL)

Вычисляет набор выражений типа Boolean для определения результата.

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

Аргументы

  • n
    Местозаполнитель, показывающий, что может использоваться несколько предложений WHEN when_expression THEN result_expression или WHEN Boolean_expression THEN result_expression.
  • THEN result_expression
    Выражение, возвращаемое если результатом выражения Boolean_expression является значение true. result expression — любое допустимое выражение.
  • ELSE else_result_expression
    Это выражение, возвращаемое, если ни одна из операций сравнения не дает в результате true. Если этот аргумент опущен и ни одна из операций сравнения не дает в результате true, функция CASE возвращает NULL. else_result_expression — любое допустимое выражение. Типы данных аргумента else_result_expression и любого из аргументов result_expression должны быть одинаковыми или неявно приводимыми друг к другу.
  • WHEN Boolean_expression
    Выражение типа Boolean, вычисляемое при использовании поискового формата оператора CASE. Boolean_expression — любое допустимое выражение типа Boolean.

Возвращаемое значение

Возвращает тип с наивысшим приоритетом из набора типов в выражении result_expression и необязательном выражении else_result_expression.

Замечания

Выражение CASE языка Entity SQL во многом подобно выражению CASE языка Transact-SQL . Выражение CASE применяется для выполнения ряда проверок условий в целях определения того, вычисление какого выражения приведет к получению приемлемого результата. В этой форме выражение CASE применяется к ряду, состоящему из одного или нескольких выражений типа Boolean, для определения правильного результирующего выражения.

Функция CASE находит значение Boolean_expression для каждого предложения WHEN в указанном порядке и возвращает значение result_expression первого выражения Boolean_expression, которое определяется как true. Если ни одно выражение Boolean_expression не вычисляется в true, компонент Database Engine возвращает выражение else_result_expression, если указано предложение ELSE, или значение NULL, если предложение ELSE не указано.

Инструкция CASE не может возвращать мультинабор.

Пример

Следующий запрос Entity SQL с помощью выражения CASE оценивает набор выражений типа Boolean, чтобы определить результат. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Следуйте инструкциям в разделе Как выполнить запрос, возвращающий результаты типов-примитивов (EntityClient).

  2. Передайте следующий запрос в качестве аргумента методу ExecutePrimitiveTypeQuery:

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

См. также

Справочник

ELSE (язык Entity SQL)
WHEN (язык Entity SQL)
THEN (язык Entity SQL)
SELECT (язык Entity SQL)

Основные понятия

Справочник по Entity SQL