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 |
+-------+------+------+
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 | +-------+------+-------------------+
Coluna booleana em predicados:
SELECT * FROM test_boolean WHERE NOT b AND (n < 1); +-------+---+----+ | B | N | S | |-------+---+----| | False | 0 | no | +-------+---+----+
Texto convertido em booleano:
SELECT s, TO_BOOLEAN(s) FROM test_boolean; +------+---------------+ | S | TO_BOOLEAN(S) | |------+---------------| | yes | True | | no | False | | NULL | NULL | +------+---------------+
Número convertido em booleano:
SELECT n, TO_BOOLEAN(n) FROM test_boolean; +------+---------------+ | N | TO_BOOLEAN(N) | |------+---------------| | 1 | True | | 0 | False | | NULL | NULL | +------+---------------+
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 | +----------------------+