논리 데이터 타입

이 항목에서는 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로 변환됩니다.

  • 0이 아닌 값은 모두 TRUE로 변환됩니다.

암시적 변환

부울 값은 텍스트 문자열 값에서 부울 값으로 암시적으로 변환될 수 있습니다.

문자열 변환:
  • ‘true’는 TRUE로 변환됩니다.

  • ‘false’는 FALSE로 변환됩니다.

문자열 값은 대/소문자를 구분하지 않습니다.

숫자 변환:
  • 제로(0)는 FALSE로 변환됩니다.

  • 0이 아닌 값은 모두 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