論理データ型

このトピックでは、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 |
+-------+------+------+
Copy

ブール型の式:

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

述語のブール列:

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

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

ブールにキャストされたテキスト:

SELECT s, TO_BOOLEAN(s) FROM test_boolean;

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

ブールにキャストされた数値:

SELECT n, TO_BOOLEAN(n) FROM test_boolean;

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

暗黙的にテキストに変換されるブール値:

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

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