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. Для компиляции и запуска этого запроса выполните следующие шаги.
Следуйте инструкциям в разделе Как выполнить запрос, возвращающий результаты типов-примитивов (EntityClient).
Передайте следующий запрос в качестве аргумента методу
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)