논리 데이터 타입¶
이 항목에서는 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 |
+-------+------+------+
부울 형식의 식:
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 | +----------------------+