[SQL] NULL 변환 - IFNULL
2024. 9. 11. 19:17ㆍLanguage/SQL
간혹 선택지 외의 값을 가질 경우 컬럼 값을 null 로 지정하는 경우가 있다. 물론 null 값은 언제 터질 줄 모르는 시한폭탄 같기에 사용을 멀리해야 하지만 테이블 데이터를 가공하면서 null 값이 생기는 경우도 많다. 이럴 때 null 대신 다른 값을 지정하고 싶다면 'IFNULL' 함수를 사용하면 된다.
1. 기본 문법
SELECT IFNULL(컬럼명, 지정값) AS 별명
FROM 테이블명
사용 방법은 파라미터로 'null' 값을 변경할 타겟 컬럼의 이름과 해당 컬럼 값이 'null' 일 경우 변경(지정)할 값을 작성하면 된다. 이렇게 되면 컬럼 값이 'null' 인 경우 '지정값' 이 반환되고 'null' 이 아니라면 해당 컬럼 값이 반환된다.
2. 사용 예시
'test' 테이블의 'test_num' 컬럼의 모든 값은 'null' 값을 갖는데, 이를 '1' 로 수정하는 쿼리를 작성해 보자.
SELECT *, IFNULL(test_num, 1) test_num2
FROM test
'test_num' 컬럼의 값을 변환한 결과를 'test_num2' 에 출력해 보았다. 기존의 'null' 값이 모두 '1' 로 변경된 것을 확인 할 수 있다. 사실 IFNULL 함수는 IF 함수의 축약버전으로 느껴졌다. 아래의 두 구문 모두 같은 결과를 출력한다.
- IF() : 'IF(test_num IS NULL, 1, test_num)' 구문을 사용, 파라미터가 3개(조건식, true 값, false 값)
- IFNULL() : 'IFNULL(test_num, 1)' 구문을 작성, 파라미터 2개(대상컬럼명, null 대체 값)
※ 참고 : 컬럼명이 아닌 값(value)을 첫 번째 파라미터로 사용하게 되면, null 이 아닐 경우 해당 값이 반환되고 null 일 경우에 컬럼일 경우와 마찬가지로 지정 값이 반환된다.
참고 문서
'Language > SQL' 카테고리의 다른 글
[SQL] 이후 날짜 구하기 - DATE_ADD, ADDDATE (0) | 2024.09.24 |
---|---|
[SQL] 재귀를 활용한 반복문 - WITH RECURSIVE (0) | 2024.09.11 |
[SQL] 레코드 집합 합치기 - UNION (0) | 2024.09.11 |
[SQL] 임시 테이블 생성 - WITH (0) | 2024.09.11 |
[SQL] 그룹별 데이터 합치기 - GROUP_CONCAT (0) | 2024.08.30 |