BOOLAND

BOOLAND (논리 AND)

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

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

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

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

참조: BOOLNOT, BOOLOR, BOOLXOR

출처: Snowflake SQL Reference - BOOLAND

본문

구문

BOOLAND( <expr1>, <expr2> )

인자

expr1

숫자 표현식이에요.

expr2

숫자 표현식이에요.

반환 값

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

사용상 주의사항

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

이 동작의 예시와 해결 방법은 Compute Boolean AND results for floating-point numbers를 참고해요.

예시

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

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

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

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

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

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

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

SELECT BOOLAND(2, 0.3);
+-----------------+
| BOOLAND(2, 0.3) |
|-----------------|
| False           |
+-----------------+
SELECT BOOLAND(-0.4, 5);
+------------------+
| BOOLAND(-0.4, 5) |
|------------------|
| False            |
+------------------+

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

SELECT 2 AND 0.3;
+-----------+
| 2 AND 0.3 |
|-----------|
| True      |
+-----------+

더 알아보기