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. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты PrimitiveType".

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

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

См. также