728x90
반응형
산술 및 문자열 연산자
NULL에 대한 산술/문자열 연산자 결과
- A + NULL 반환 값: NULL
- A - NULL 반환 값: NULL
- A / NULL 반환 값: NULL
- A * NULL 반환 값: NULL
- NULL / A 반환 값: NULL
- 0 / NULL 반환 값: NULL
- 0 * NULL 반환 값: NULL
- A & NULL 반환 값: A
NULL 전파
NULL 전파를 피하기 위한 조건문
IF
IF(expr, true_result, else_result)
설명
expr은 Bool 표현식이어야 한다.
expr 조건 결과(True/False)에 따라 반환값을 정할 수 있는 조건문이다.
expr이 True인 경우 true_result 값이, False 또는 NULL인 경우 else_result 값이 반환된다.
예시
WITH Numbers AS (
SELECT 10 as A, 20 as B UNION ALL
SELECT 50, 30 UNION ALL
SELECT 60, 60
)
SELECT
A,
B,
IF(A < B, 'true', 'false') AS result
FROM Numbers
/*------------------*
| A | B | result |
+------------------+
| 10 | 20 | true |
| 50 | 30 | false |
| 60 | 60 | false |
*------------------*/
- "string이 NULL이 아닌 조건"
IF(column IS NOT NULL AND column != '', 'true', 'false')
-- 같은 표현식
IF(column > '', 'true', 'false')
IFNULL
IFNULL(expr, null_result)
설명
expr이 NULL인 경우 null_result를 반환한다.
그 외의 경우 expr을 반환한다.
예시
SELECT IFNULL(NULL, 0) AS result
-- result 값: 0
SELECT IFNULL(10, 0) AS result
-- result 값: 10
NULLIF
NULLIF(expr, expr_to_match)
설명
expr과 expr_to_match는 비교 가능해야 한다. (데이터 타입)
expr = expr_to_match 가 True인 경우 NULL을 반환한다.
그 외의 경우 expr을 반환한다.
예시
SELECT NULLIF(0, 0) AS result
-- result 값 : NULL
SELECT NULLIF(10, 0) AS result
-- result 값 : 10
Reference
반응형
'[Google] > [BQ] BigQuery' 카테고리의 다른 글
[BQ] BigQuery partition limit (0) | 2023.07.05 |
---|---|
[BQ] 쿼리 비용 Tip (0) | 2023.06.21 |
[BQ] Python에서 BigQuery 실행하기 (0) | 2023.04.23 |
[Google] BigQuery에 대하여 (0) | 2023.04.15 |
[BigQuery] NET.HOST() (0) | 2023.04.15 |