Funções Lógicas
A lista abaixo mostra as funções lógicas que podem ser utilizadas em expressões.
Função | Descrição |
---|---|
Case | A instrução case tem duas formas diferentes. Simples:
A expressão Pesquisado:
Retorna As expressões quando/então podem ser inseridas e são avaliadas em ordem da esquerda para direita. Consulte abaixo para mais informações. Exemplo:
Para mais exemplos, veja abaixo e Colunas calculadas com base em condições. |
If(Arg1,Arg2,Arg3)
| RetornaArg2 seArg1 =true e Arg3 seArg1 =false.Arg1 é do tipo booleano, normalmente o resultado de uma comparação.Arg2 eArg3 podem ser de qualquer tipo, mas devem ser do mesmo tipo ou nulo.O segundo e o terceiro argumento apenas processam os subconjuntos das linhas, o que afeta todos os métodos baseados em colunas e métodos acumulados.Consulte abaixo para mais informações. Exemplos:
Para mais exemplos, veja abaixo e Colunas calculadas com base em condições. |
Is Not Null
| Usado em uma instrução If ou Case para determinar se uma expressão produz ou não um valor vazio (valor nulo).Exemplo:
Se uma expressão contiver valores vazios (valores nulos), você poderá usar a função |
Is Null
| Usado em uma instrução Exemplo:
Se uma expressão contiver valores vazios (valores nulos), você poderá usar a função |
Mais sobre usar "if" em expressões:
Quando você estiver usando uma instrução If em uma expressão, a condição no primeiro argumento limita os valores a serem avaliados no terceiro argumento.Para entender como funciona, primeiro pegue uma coluna de número inteiro simples como exemplo:
Col1 |
1 |
2 |
3 |
Insira uma coluna calculada usando a seguinte expressão:
if(Col1 < 2,
Max(Col1), Max(Col1))
Isso resultará em uma nova coluna com dois valores diferentes; um para "case" quando o máximo para todos os valores que são menores que 2 e um mostrando o valor máximo para o resto dos valores (que também é o máximo da coluna inteira):
Col1 | if(Col1 < 2, Max(Col1), Max(Col1))
|
1 | 1 |
2 | 3 |
3 | 3 |
A função If
foi projetada para dividir a coluna em dois grupos e continuar avaliando a expressão nos novos grupos.
Se estiver usando uma expressão Percentile
, você obterá resultados diferentes na mesma expressão de percentil, dependendo de como a primeira condição dividiu a coluna:
Col2 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Insira duas colunas usando as duas expressões seguintes:
if (Col2 < 4, 0,
Percentile(Col2, 70))
if (Col2 < 6, 0,
Percentile(Col2, 70))
Em seguida, obtém-se o seguinte resultado:
Col2 | if (Col2 < 4, 0,
Percentile(Col2, 70))
| if (Col2 < 6,
0, Percentile(Col2, 70))
|
1 | 0 | 0 |
2 | 0 | 0 |
3 | 0 | 0 |
4 | 8,2 | 0 |
5 | 8,2 | 0 |
6 | 8,2 | 8,8 |
7 | 8,2 | 8,8 |
8 | 8,2 | 8,8 |
9 | 8,2 | 8,8 |
10 | 8,2 | 8,8 |
If
' agrupou os dados.Mais sobre como usar "case" em expressões:
Ao trabalhar com expressões de caso, a condição depois de "when
" é calculada na coluna inteira.O argumento depois de "then
" é calculado nas linhas definidas pela condição "when
".Se vários pares "when- then
" estiverem incluídos na expressão, um "then
" será limitado por todas as condições anteriores, bem como pela última.
Um exemplo de uso de uma coluna de número inteiro simples:
Col1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Inserir duas colunas calculadas, chamadas Case Min e Case Max, utilizando as seguintes expressões:
Case Min:
case
when [Col1]<Avg([Col1]) then Min([Col1])
when [Col1]<(Avg([Col1]) + 1) then Min([Col1])
else Min([Col1])
end
Case Max:
case
when [Col1] < Avg([Col1]) then Max([Col1])
when [Col1] < (Avg([Col1]) + 1) then Max([Col1])
else Max([Col1])
end
O resultado será:
Col1 | Case Min | Case Max |
1 | 1 | 4 |
2 | 1 | 4 |
3 | 1 | 4 |
4 | 1 | 4 |
5 | 5 | 5 |
6 | 6 | 8 |
7 | 6 | 8 |
8 | 6 | 8 |