BOOLOR

BOOLOR (논리 OR)

두 숫자 표현식의 Boolean OR를 계산해요. Boolean 의미론에 따라:

  • 0이 아닌 값(음수 포함)은 true로 간주돼요.
  • 0 값은 false로 간주돼요.

결과적으로 함수는 다음을 반환해요:

  • 두 표현식 모두 0이 아니거나 한 표현식이 0이 아니고 다른 표현식이 0이거나 NULL이면 True.
  • 두 표현식 모두 0이면 False.
  • 두 표현식 모두 NULL이거나 한 표현식이 NULL이고 다른 표현식이 0이면 NULL.

참조: BOOLAND, BOOLNOT, BOOLXOR

출처: Snowflake SQL Reference - BOOLOR

본문

구문

BOOLOR( <expr1>, <expr2> )

인자

expr1

숫자 표현식이에요.

expr2

숫자 표현식이에요.

반환 값

이 함수는 BOOLEAN 또는 NULL 타입의 값을 반환해요.

사용상 주의사항

이 함수는 부동 소수점 숫자를 반올림해요. 따라서 0이 아닌 부동 소수점 숫자를 0으로 반올림할 때 예기치 않은 결과를 반환할 수 있어요.

이 동작의 예시와 해결 방법은 부동 소수점 숫자에 대한 Boolean OR 결과 계산을 참고해요.

예시

다음 예시들은 BOOLOR 함수를 사용해요.

정수와 NULL 값에 대한 Boolean OR 결과 계산

다음 쿼리는 정수와 NULL 값에 대한 Boolean OR 결과를 계산해요:

SELECT BOOLOR(1, 2),
       BOOLOR(0, 2),
       BOOLOR(3, NULL),
       BOOLOR(0, 0),
       BOOLOR(NULL, 0),
       BOOLOR(NULL, NULL);
+--------------+--------------+-----------------+--------------+-----------------+--------------------+
| BOOLOR(1, 2) | BOOLOR(0, 2) | BOOLOR(3, NULL) | BOOLOR(0, 0) | BOOLOR(NULL, 0) | BOOLOR(NULL, NULL) |
|--------------+--------------+-----------------+--------------+-----------------+--------------------|
| True         | True         | True            | False        | NULL            | NULL               |
+--------------+--------------+-----------------+--------------+-----------------+--------------------+

부동 소수점 숫자에 대한 Boolean OR 결과 계산

다음 예시들은 0으로 반올림되는 부동 소수점 숫자에 대해 함수가 예기치 않은 결과를 반환할 수 있는 방법을 보여줘요.

다음 쿼리의 경우 다음 함수 호출에 대해 True 결과가 예상될 수 있지만, 함수가 0이 아닌 부동 소수점 값을 0으로 반올림하기 때문에 False를 반환해요:

SELECT BOOLOR(0.4, 0.3);
+------------------+
| BOOLOR(0.4, 0.3) |
|------------------|
| False            |
+------------------+
SELECT BOOLOR(-0.4, 0.3);
+-------------------+
| BOOLOR(-0.4, 0.3) |
|-------------------|
| False             |
+-------------------+

다음 쿼리의 경우 다음 함수 호출에 대해 True 결과가 예상될 수 있지만 NULL을 반환해요:

SELECT BOOLOR(0.4, NULL);
+-------------------+
| BOOLOR(0.4, NULL) |
|-------------------|
| NULL              |
+-------------------+
SELECT BOOLOR(-0.4, NULL);
+--------------------+
| BOOLOR(-0.4, NULL) |
|--------------------|
| NULL               |
+--------------------+

필요하다면 함수 대신 OR 논리 연산자를 사용해 부동 소수점 값의 이 반올림 동작을 해결할 수 있어요. 예를 들어 다음 쿼리는 True를 반환해요:

SELECT 0.4 OR 0.3;
+------------+
| 0.4 OR 0.3 |
|------------|
| True       |
+------------+

더 알아보기