論理データ型¶
このトピックでは、Snowflakeでサポートされている論理データ型について説明します。
このトピックの内容:
データ型¶
Snowflakeは、単一の論理データ型の BOOLEAN をサポートしています。
BOOLEAN¶
BOOLEAN は、 TRUE または FALSE の値を持つことができます。BOOLEAN は、 NULLで表される「不明」な値を持つこともできます。ブール列は、式( SELECT リストなど)や述語( WHERE 句など)で使用できます。
BOOLEAN データ型は、 3値論理 のサポートを有効にします。
ブール変換¶
ブール値への変換¶
明示的な変換¶
ブール値は、 TO_BOOLEAN または CAST 関数を使用して、テキスト文字列と数値からブール値に明示的に変換できます。
- 文字列変換:
TRUE に変換された文字列:
'true'
、't'
、'yes'
、'y'
、'on'
、'1'
。FALSE に変換された文字列:
'false'
、'f'
、'no'
、'n'
、'off'
、'0'
。変換では大文字と小文字は区別されません。
他のすべてのテキスト文字列は、ブール値に変換できません。
- 数値変換:
ゼロ(
0
)は FALSEに変換されます。ゼロ以外の値は TRUE に変換されます。
暗黙的な変換¶
ブール値は、テキスト文字列値からブール値に暗黙的に変換できます。
- 文字列変換:
「true」は TRUE に変換されます。
「false」は FALSE に変換されます。
文字列値は大文字と小文字が区別されません。
- 数値変換:
ゼロ(
0
)は FALSEに変換されます。ゼロ以外の値は TRUE に変換されます。
ブール値からの変換¶
明示的な変換¶
ブール値は、文字列または数値に明示的にキャストできます。
- 文字列変換:
TRUE は「true」に変換されます。
FALSE は「false」に変換されます。
- 数値変換:
TRUE は
1
に変換されます。FALSE は
0
に変換されます。
暗黙的な変換¶
- 文字列変換:
TRUE は「true」に変換されます。
FALSE は「false」に変換されます。
例¶
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 |
+-------+------+------+
ブール型の式:
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 | +-------+------+-------------------+
述語のブール列:
SELECT * FROM test_boolean WHERE NOT b AND (n < 1); +-------+---+----+ | B | N | S | |-------+---+----| | False | 0 | no | +-------+---+----+
ブールにキャストされたテキスト:
SELECT s, TO_BOOLEAN(s) FROM test_boolean; +------+---------------+ | S | TO_BOOLEAN(S) | |------+---------------| | yes | True | | no | False | | NULL | NULL | +------+---------------+
ブールにキャストされた数値:
SELECT n, TO_BOOLEAN(n) FROM test_boolean; +------+---------------+ | N | TO_BOOLEAN(N) | |------+---------------| | 1 | True | | 0 | False | | NULL | NULL | +------+---------------+
暗黙的にテキストに変換されるブール値:
SELECT 'Text for ' || s || ' is ' || b AS result FROM test_boolean; +----------------------+ | RESULT | |----------------------| | Text for yes is true | | Text for no is false | | NULL | +----------------------+