Expressões Condicionais

Use expressões condicionais para criar expressões que convertam valores.

As expressões condicionais descritas nesta seção são blocos de construção para criar expressões que convertem um valor de um formato para outro.

Siga estas regras:

  • Nas instruções CASE, AND tem precedência sobre OR.
  • As strings devem ser colocadas entre aspas simples.
Expressão Exemplo Descrição Sintaxe

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

Avalia cada condição WHEN e, se atendida, designa o valor na expressão THEN correspondente.

Se nenhuma das condições WHEN for atendida, ela designará o valor padrão especificado na expressão ELSE. Se nenhuma expressão ELSE for especificada, o sistema adicionará automaticamente uma expressão ELSE NULL.

Observação: Consulte Melhores Práticas para usar instruções CASE em Análises e Visualizações.

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

Também referido como CASE (Lookup). O valor da primeira expressão é examinado; em seguida, as expressões WHEN. Se a primeira expressão corresponder a qualquer expressão WHEN, ela designará o valor na expressão THEN correspondente.

Se nenhuma das expressões WHEN corresponder, ela designará o valor padrão especificado na expressão ELSE. Se nenhuma expressão ELSE for especificada, o sistema adicionará automaticamente uma expressão ELSE NULL.

Se a primeira expressão corresponder a uma expressão em várias cláusulas WHEN, somente a expressão que se segue à primeira correspondência será designada.

Observação: Consulte Melhores Práticas para usar instruções CASE em Análises e Visualizações.

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]

Melhores Práticas para Usar Instruções CASE em Análises e Visualizações

Ao usar instruções CASE em relatórios e pastas de trabalho, considere as colunas de relatório e a ordem de agregação, uma vez que isso afeta a forma de calcular expressões e subtotais.

  • Em geral, ao usar expressões CASE, certifique-se de que quaisquer colunas usadas na expressão sejam incluídas no relatório.

  • Se a ordem de agregação for importante, altere a regra de agregação do relatório de Padrão para Soma.
  • Se uma condição tiver de ser avaliada antes do cálculo da agregação (por exemplo, se a coluna filtrada não for exibida no relatório), use a função FILTER.

Exemplo

Este exemplo usa dados de Marca, Tipo de Produto e Receita.
Descrição de GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png segue
.png

Para aplicar uma condição para definir a receita da Câmera com o valor 0, crie a seguinte expressão condicional: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Quando Product_Type é excluído do relatório, os dados não ficam disponíveis para avaliar a expressão porque ela contém Product_Type e os resultados são:
Descrição de GUID-22873F41-3679-45DF-821D-4167594FE069-default.png segue
.png

Adicionando PRODUCT_TYPE ao relatório e definindo a agregação do relatório como SUM, os resultados são agregados após o cálculo dos valores de nível básico:
Descrição de GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png segue
.png

Uma alternativa ao uso de CASE é usar uma expressão de filtro: FILTER(Revenue using Product_Type != ‘Camera’). A expressão é calculada independentemente das colunas de relatório e as agregações são aplicadas após o cálculo:
Descrição de GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png segue
.png