CASE (Entity SQL)
Вычисляет набор выражений типа Boolean
для определения результата.
Синтаксис
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Аргументы
n
Заполнитель, указывающий, что можно использовать несколько предложений WHEN Boolean_expression
THEN result_expression
.
Затем result_expression
выражение, возвращаемое при Boolean_expression
вычислении true
. result expression
- любое допустимое выражение.
ELSE else_result_expression
— это выражение, возвращаемое, если операция сравнения не вычисляется true
. Если этот аргумент опущен и ни одна из операций сравнения не дает в результате true
, функция CASE возвращает NULL. else_result_expression
- любое допустимое выражение. Типы данных аргумента else_result_expression
и любого из аргументов result_expression
должны быть одинаковыми или неявно приводимыми друг к другу.
Boolean
ЕСЛИ Boolean_expression
выражение вычисляется при использовании формата CASE для поиска. Boolean_expression
- любое допустимое выражение типа Boolean
.
Возвращаемое значение
Возвращает тип с наивысшим приоритетом из набора типов в выражении result_expression
и необязательном выражении else_result_expression
.
Замечания
Выражение регистра Entity SQL напоминает выражение регистра 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. Для компиляции и запуска этого запроса выполните следующие шаги.
Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты PrimitiveType".
Передайте следующий запрос в качестве аргумента методу
ExecutePrimitiveTypeQuery
:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END