Tipos de dados lógicos

Este tópico descreve os tipos de dados lógicos aceitos no Snowflake.

Neste tópico:

Tipos de dados

O Snowflake oferece suporte a um único tipo de dados lógicos, BOOLEAN.

BOOLEAN

BOOLEAN pode ter valores TRUE ou FALSE. BOOLEAN também pode ter um valor “desconhecido”, que é representado por NULL. As colunas booleanas podem ser usadas em expressões (por exemplo, lista SELECT), bem como em predicados (por exemplo, cláusula WHERE).

O tipo de dados BOOLEAN oferece suporte para Lógica ternária.

Conversão booleana

Conversão em booleano

Conversão explícita

Os valores booleanos podem ser explicitamente convertidos de cadeia de caracteres de texto e valores numéricos em valores booleanos usando as funções TO_BOOLEAN ou CAST:

Conversão de cadeias de caracteres:
  • Cadeias de caracteres convertidas em TRUE: 'true', 't', 'yes', 'y', 'on', '1'.

  • Cadeias de caracteres convertidas em FALSE: 'false', 'f', 'no', 'n', 'off', '0'.

  • A conversão não faz distinção entre maiúsculas e minúsculas.

  • Todas as outras cadeias de caracteres de texto não podem ser convertidas em valores booleanos.

Conversão numérica:
  • Zero (0) é convertido em FALSE.

  • Qualquer valor diferente de zero é convertido em TRUE.

Conversão implícita

Os valores booleanos podem ser implicitamente convertidos de valores de cadeia de caracteres de texto em valores booleanos.

Conversão de cadeias de caracteres:
  • “true” é convertido em TRUE.

  • “false” é convertido em FALSE.

Os valores das cadeias de caracteres não diferenciam maiúsculas e minúsculas.

Conversão numérica:
  • Zero (0) é convertido em FALSE.

  • Qualquer valor diferente de zero é convertido em TRUE.

Conversão de booleano

Conversão explícita

Os valores booleanos podem ser convertidos explicitamente em valores de cadeia de caracteres ou valores numéricos.

Conversão de cadeias de caracteres:
  • TRUE é convertido em “true”.

  • FALSE é convertido em “false”.

Conversão numérica:
  • TRUE é convertido em 1.

  • FALSE é convertido em 0.

Conversão implícita

Conversão de cadeias de caracteres:
  • TRUE é convertido em “true”.

  • FALSE é convertido em “false”.

Exemplos

CREATE OR REPLACE TABLE test_boolean(
   b BOOLEAN,
   n NUMBER,
   s STRING);

INSERT INTO test_boolean VALUES (true, 1, 'yes'), (false, 0, 'no'), (null, null, null);

SELECT * FROM test_boolean;

+-------+------+------+
| B     |    N | S    |
|-------+------+------|
| True  |    1 | yes  |
| False |    0 | no   |
| NULL  | NULL | NULL |
+-------+------+------+
Copy

Expressão do tipo booleana:

SELECT b, n, NOT b AND (n < 1) FROM test_boolean;

+-------+------+-------------------+
| B     |    N | NOT B AND (N < 1) |
|-------+------+-------------------|
| True  |    1 | False             |
| False |    0 | True              |
| NULL  | NULL | NULL              |
+-------+------+-------------------+
Copy

Coluna booleana em predicados:

SELECT * FROM test_boolean WHERE NOT b AND (n < 1);

+-------+---+----+
| B     | N | S  |
|-------+---+----|
| False | 0 | no |
+-------+---+----+
Copy

Texto convertido em booleano:

SELECT s, TO_BOOLEAN(s) FROM test_boolean;

+------+---------------+
| S    | TO_BOOLEAN(S) |
|------+---------------|
| yes  | True          |
| no   | False         |
| NULL | NULL          |
+------+---------------+
Copy

Número convertido em booleano:

SELECT n, TO_BOOLEAN(n) FROM test_boolean;

+------+---------------+
|    N | TO_BOOLEAN(N) |
|------+---------------|
|    1 | True          |
|    0 | False         |
| NULL | NULL          |
+------+---------------+
Copy

Booleano implicitamente convertido em texto:

SELECT 'Text for ' || s || ' is ' || b AS result FROM test_boolean;

+----------------------+
| RESULT               |
|----------------------|
| Text for yes is true |
| Text for no is false |
| NULL                 |
+----------------------+
Copy