본문 바로가기
Big Data/Database

NULL 처리 함수

by Wikinist 2023. 7. 26.

NULLIF 함수

NULLIF 함수는 두 개의 인수를 비교하여 두 값이 같으면 NULL을 반환하고, 다르면 첫 번째 인수의 값을 반환합니다. 주로 두 값이 같을 때 NULL 값을 반환해야 하는 상황에 사용됩니다.

구문:

NULLIF(expression1, expression2)

예제:

SELECT NULLIF(10, 10) AS result; -- 결과: NULL
SELECT NULLIF(20, 10) AS result; -- 결과: 20
SELECT NULLIF('hello', 'hello') AS result; -- 결과: NULL
SELECT NULLIF('world', 'hello') AS result; -- 결과: 'world'

IFNULL 함수

IFNULL 함수는 첫 번째 인수가 NULL이 아니면 첫 번째 인수의 값을 반환하고, 첫 번째 인수가 NULL이면 두 번째 인수의 값을 반환합니다. 주로 NULL 값을 다른 값으로 대체할 때 사용됩니다.

구문:

IFNULL(expression1, expression2)

예제:

SELECT IFNULL(10, 100) AS result; -- 결과: 10
SELECT IFNULL(NULL, 100) AS result; -- 결과: 100
SELECT IFNULL('hello', 'world') AS result; -- 결과: 'hello'
SELECT IFNULL(NULL, 'world') AS result; -- 결과: 'world'

NULLIF와 IFNULL 함수는 NULL 값을 처리하거나 대체하는데 유용한 함수들입니다. NULLIF는 두 값이 같을 때 NULL을 반환하며, IFNULL은 첫 번째 인수가 NULL이면 두 번째 인수로 대체합니다. 이를 활용하여 SQL 쿼리에서 NULL 값을 적절하게 다룰 수 있습니다.

COALESCE 함수

COALESCE 함수는 인수들 중에서 첫 번째로 나타나는 NON-NULL 값을 반환합니다. 인수들을 왼쪽에서 오른쪽 순서대로 검사하며, NON-NULL 값을 발견하면 해당 값을 반환하고 검사를 종료합니다. 모든 인수가 NULL인 경우 NULL을 반환합니다.

구문:

COALESCE(expression1, expression2, ..., expressionN)

예제:

SELECT COALESCE(NULL, 10, 20) AS result; -- 결과: 10
SELECT COALESCE(NULL, NULL, 'hello') AS result; -- 결과: 'hello'
SELECT COALESCE(NULL, NULL, NULL) AS result; -- 결과: NULL

NULLIFNULL 함수:

NULLIFNULL 함수는 두 개의 인수를 비교하여 두 값이 모두 NULL인 경우 NULL을 반환하고, 그렇지 않으면 첫 번째 인수의 값을 반환합니다. 주로 두 값이 모두 NULL인 경우 NULL 값을 반환해야 하는 상황에 사용됩니다.

구문:

NULLIFNULL(expression1, expression2)


예제:

SELECT NULLIFNULL(NULL, NULL) AS result; -- 결과: NULL
SELECT NULLIFNULL(NULL, 10) AS result; -- 결과: 10
SELECT NULLIFNULL(20, NULL) AS result; -- 결과: 20
SELECT NULLIFNULL(30, 40) AS result; -- 결과: 30

IF 함수:

IF 함수는 조건식을 평가하여 조건이 참이면 두 번째 인수의 값을, 조건이 거짓이면 세 번째 인수의 값을 반환합니다. 한 가지 차이점은 IF 함수는 NULL 값을 포함한 모든 값을 다룰 수 있지만, IFNULL은 첫 번째 인수가 NULL인 경우에만 두 번째 인수로 대체합니다.

구문:

IF(condition, value_if_true, value_if_false)

예제:

SELECT IF(1 = 1, 'true', 'false') AS result; -- 결과: 'true'
SELECT IF(1 = 2, 'true', 'false') AS result; -- 결과: 'false'
SELECT IF(10 > 5, 100, NULL) AS result; -- 결과: 100
SELECT IF(10 < 5, 100, NULL) AS result; -- 결과: NULL

위의 함수들은 모두 NULL 값을 다루거나 대체하는데 유용한 함수들입니다. 각 함수들은 특정 상황에서 적합하게 사용될 수 있으며, SQL 쿼리에서 NULL 값을 처리하는 데 도움을 줍니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > Database' 카테고리의 다른 글

서브쿼리를 이용한 뷰 생성 및 사용 예제  (0) 2023.07.26
GROUP BY와 ROLL UP  (0) 2023.07.26
NULL과 연산  (0) 2023.07.26
서브쿼리의 유형  (0) 2023.07.25
식별관계, 비식별관계  (0) 2023.07.24