Условные выражения

Условные выражения используются для создания выражений, преобразующих значения.

Описанные в этом разделе условные выражения представляют собой составные компоненты для создания условных выражений, преобразующих значения из одной формы в другую.

Соблюдайте следующие правила:

  • В инструкциях CASE оператор AND имеет приоритет над оператором OR.
  • Строки должны быть заключены в одинарные кавычки.
Выражение Пример Описание Синтаксис

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Оценивает каждое условие WHEN. Если условие удовлетворено, значение присваивается соответствующему выражению THEN.

Если ни одно из условий WHEN не удовлетворяется, присваивается значение по умолчанию, заданное выражением ELSE. Если выражение ELSE не задано, система автоматически добавляет ELSE NULL.

Примечание. См. раздел Передовой опыт использования инструкций CASE в анализах и визуализациях.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Также называется CASE (Lookup). Оценивается значение первого выражения, затем оцениваются выражения WHEN. Если первое выражение соответствует любому из выражений WHEN, соответствующему выражению THEN присваивается значение.

Если не найдено соответствия ни одному выражению WHEN, присваивается значение по умолчанию, заданное выражением ELSE. Если выражение ELSE не задано, система автоматически добавляет ELSE NULL.

Если первое выражение соответствует одному из выражений в нескольких фразах WHEN, присваивается только выражение, следующее за первым совпадением.

Примечание. См. раздел Передовой опыт использования инструкций CASE в анализах и визуализациях.

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

Передовой опыт использования инструкций CASE в анализах и визуализациях

При использовании операторов CASE в отчетах и рабочих книгах следует учитывать столбцы отчета и порядок агрегирования, поскольку они влияют способы вычисления выражений и промежуточные итоги.

  • В целом, при использовании выражений CASE убедитесь, что в отчет включены все столбцы, используемые в выражении.

  • Если порядок агрегации важен, измените правило агрегации отчета с "Default" (По умолчанию) на "Sum" (Сумма).
  • Если условие должно быть оценено до вычисления агрегации (например, если отфильтрованный столбец не отображается в отчете), используйте функцию FILTER.

Пример

В этом примере используются данные для столбцов "Марка", "Тип продукта" и "Доход".
Описание GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png ниже
.png

Чтобы применить условие и задать доходу от камеры значение 0, создайте следующее условное выражение: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Если исключить Product_Type из отчета, данные недоступны для оценки выражения, поскольку оно содержит Product_Type, и результаты таковы:
Описание GUID-22873F41-3679-45DF-821D-4167594FE069-default.png ниже
.png

.

Если добавить PRODUCT_TYPE в отчет и задать агрегацию отчета SUM, результат агрегируется после вычисления значений базового уровня:
Описание GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png ниже
.png

.

В качестве альтернативы вместо инструкции CASE можно использовать выражение фильтра: FILTER(Доход с использования Product_Type != ‘Camera’). Выражение вычисляется независимо от столбцов отчета, а агрегирования применяются после вычисления:
Описание GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png ниже
.png