Operadores lógicos

Os operadores lógicos (and, or e not) permitem combinar logicamente várias expressões para avaliar uma expressão maior e mais complexa, cuja saída é true ou false.
(left-hand side) (operator) (right-hand side)

Essas avaliações resultam em uma saída booleana. Os seguintes operadores são aceitos:

Nome do operadorSímboloExpressão de exemploResultadoObservações
and&&

((1 == 1) && (2 == 2))

true

((1 == 1) && (2 == 3))

false
or||

((1 == 1) || (2 == 2))

trueOr exclusivo (xor) não está disponível.

((1 == 2) || (2 == 3))

false
not!

!(1 == 1)

false

!(1 == 2)

true

Os exemplos acima são válidos apenas para valores inteiros. Revise a seguir como os operadores de comparação são aplicados a diferentes tipos de dados.

Uso

Os operadores lógicos são utilizados para realizar avaliações de expressões que abrangem vários tipos de dados. Normalmente, eles são aplicados a avaliações de valores ou linhas.

Dados de exemplo:

XY
truetrue
truefalse
falseverdadeiro
falsefalse

Transformações:

derive type:single value:(X && Y) as: 'col_and'

derive type:single value:(X || Y) as: 'col_or'

derive type:single value:!(or) as: 'col_not_and'

derive type:single value:!(or) as: 'col_not_or'

Resultados:

O resultado tem esta aparência:

XYcol_andcol_orcol_not_andcol_not_or
truetruetruetruefalsefalse
verdadeirofalsefalsetruetruefalse
falseverdadeirofalsetruetruefalse
falsefalsefalsefalsetruetrue

Exemplos

and

Tipo de colunaExemplo de transformaçãoResultadoObservações
Inteiro/decimal

set col:InRange value:((Input >= 10) && (Input <= 90))

  • Definir o valor da coluna InRange como true se o valor da coluna Input estiver entre 10 e 90, inclusive.
  • Caso contrário, a coluna InRange será false.
Datetime

delete row: ((Date >= DATE(2014, 01, 01)) && (Date <= DATE(2014, 12, 31))

Excluir todas as linhas em que o valor Date se enquadra em algum momento em 2014.
String

derive type:single value:((LEFT(USStates,1) == "A") && (RIGHT(USStates,1) == "A"))

Para nomes de estados dos EUA, a coluna gerada contém true para os seguintes valores:

  • Alabama
  • Alaska
  • Arizona

Para todos os outros valores, o valor gerado é false.

or

Tipo de colunaExemplo de transformaçãoResultadoObservações
Inteiro/decimal

set col:BigOrder value:((Total > 1000000) || (Qty > 1000))

  • Na coluna BigOrder, definir o valor como true se o valor de Total for superior a 1.000.000 ou o valor de Qty for superior a 1.000.
  • Caso contrário, o valor será false.
Datetime

delete row: ((Date <= DATE(1950, 01, 01)) || (Date >= DATE(2050, 12, 31))

Excluir todas as linhas no conjunto de dados em que o valor Date é anterior a 01/01/1950 ou posterior a 31/12/2050.
String

derive type:single value:((Brand == 'subaru') || ('Color' == 'green')) as:'good_car'

  • Gerar a nova coluna good_car contendo true se Brand for subaru ou Color for green.
  • Caso contrário, o valor de good_car será false.

not

Tipo de colunaExemplo de transformaçãoResultadoObservações
Inteiro/decimal

keep row:!((sqft < 1300) && (bath < 2) && (bed < 2.5))

Manter todas as linhas para casas que não atendem a nenhum destes critérios:

  • menor que 1.300 pés quadrados
  • menos de 2 banheiros
  • menos de 2,5 quartos
Datetime

keep row:!(YEAR(Date) == '2016')

Manter todas as linhas no conjunto de dados em que o ano do valor Date não é 2016.
String

delete row:!(status == 'Keep_It')

Ver também