Expressões Condicionais

São utilizadas expressões condicionais para criar expressões que convertem valores.

As expressões condicionais descritas nesta secção são a base para a criação de expressões que convertem um valor de um formato para outro.

Estas regras devem ser cumpridas:

  • Nas instruções CASE, AND tem precedência sobre OR.
  • As cadeias de caracteres devem estar entre plicas.
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 for satisfeita, atribui o valor na expressão THEN correspondente.

Se nenhuma das condições WHEN for satisfeita, atribui o valor por omissão especificado na expressão ELSE. Se não for especificada nenhuma expressão ELSE, o sistema acrescenta automaticamente um ELSE NULL.

Nota: Consulte Procedimentos Recomendados para utilizar 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, atribui o valor na expressão THEN correspondente.

Se nenhuma das expressões WHEN corresponder, atribui o valor por omissão especificado na expressão ELSE. Se não for especificada nenhuma expressão ELSE, o sistema acrescenta automaticamente um ELSE NULL.

Se a primeira expressão corresponder a uma expressão em várias cláusulas WHEN, só a expressão a seguir à primeira correspondência é atribuída.

Nota Consulte Procedimentos Recomendados para utilizar 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]

Procedimentos Recomendados para Utilizar Instruções CASE em Análises e Visualizações

Ao utilizar instruções CASE em relatórios e livros, considere as colunas do relatório e a ordem de agregação, uma vez que estas afetam a forma como as expressões e os subtotais são calculados.

  • Em geral, ao utilizar expressões CASE, certifique-se de que todas as colunas utilizadas na expressão são incluídas no relatório.

  • Se a ordem de agregação for importante, altere a regra de agregação do relatório de Valor por Omissão para Soma.
  • Se uma condição tiver de ser avaliada antes de a agregação ser calculada (por exemplo, se a coluna filtrada não for apresentada no relatório), utilize a função FILTER.

Exemplo

Este exemplo utiliza dados para Brand, Product Type e Revenue.
Segue-se a descrição de GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png

Para aplicar uma condição para definir as receitas de Camera como 0, é criada a seguinte expressão condicional: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

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

Ao acrescentar PRODUCT_TYPE ao relatório e definir a agregação do relatório como SUM, o resultado é agregado após os valores do nível base serem calculados:
Segue-se a descrição de GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png

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