BOOLAND
BOOLAND (논리 AND)
두 숫자 표현식의 Boolean AND를 계산해요. Boolean 의미론에 따라:
- 0이 아닌 값(음수 포함)은 true로 간주돼요.
- 0 값은 false로 간주돼요.
결과적으로 함수는 다음을 반환해요:
- 두 표현식 모두 0이 아니면 True.
- 두 표현식 모두 0이거나 한 표현식이 0이고 다른 표현식이 0이 아니거나 NULL이면 False.
- 두 표현식 모두 NULL이거나 한 표현식이 NULL이고 다른 표현식이 0이 아니면 NULL.
본문
구문
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 |
+-----------+
더 알아보기
- Conditional expression functions — 조건식 함수 모음
- BOOLOR — 논리 OR
- BOOLXOR — 논리 XOR