반응형
데이터를 조회할때,
컬럼 혹은 변수에 값이 없으면 NULL값이 조회된다.
NULL은 예외사항이 많기 때문에 항상 체크해야한다. (우리는 NULL값을 원하지 않으니.)
그래서 SQL 내장함수로,
ISNULL / COALESCE 함수가 있어서 소개하려고 한다.
ISNULL 함수는 많은 사람들이 알고 있는 함수라고 생각하지만,
COALESCE 함수는 모르는 사람이 더 많아서 ISNULL 함수와 함께 소개하려고 한다.
ISNULL 함수
1
2
3
4
5
6
7
8
9
10
11
12
|
DECLARE @age INT;
DECLARE @name NVARCHAR(10);
-- NULL / NULL
SELECT @age AS age, @name AS name;
-- 셋팅X
-- SET @age = 10;
-- SET @name = '홍길동';
-- ISNULL 함수 사용
SELECT ISNULL(@age, 10) AS age, ISNULL(@name, '홍길동') AS name;
|
cs |
age/name 이라는 변수를 선언하고 값을 초기화 하지 않으면 두 변수 모두 NULL 값을 가진다.
그럴때, ISNULL 함수를 사용해서 조회할때 NULL이 아닌 값을 조회 할 수 있다.
COALESCE 함수
1
2
3
4
5
6
7
8
9
10
11
12
13
|
DECLARE @age INT;
DECLARE @name NVARCHAR(10);
-- NULL / NULL
SELECT @age AS age, @name AS name;
-- 셋팅X
-- SET @age = 10;
-- SET @name = '홍길동';
-- COALESCE 함수 사용
SELECT COALESCE(@age, NULL, NULL, NULL, NULL, NULL, 10) AS age,
COALESCE(@name, NULL, NULL, NULL, NULL, '홍길동') AS name;
|
cs |
ISNULL 함수와 가장 큰 차이는 바로 위에 보이는 COALESCE 함수 안에 있는 NULL값들의 갯수이다.
ISNULL 함수는 1개의 변수값이 NULL인지 체크하지만,
COALESCE 함수는 N개의 변수값이 NULL인지 체크한다. (단, 우선순위는 왼쪽이 가장 높다.)
다양하게 COALESCE 함수 예제를 실행해본 결과이다. 참고하자.
반응형
'개발 > MSSQL' 카테고리의 다른 글
[SQL] 최소~최대 까지 랜덤 숫자 가져오기. (2) | 2020.02.17 |
---|---|
[SQL] ORDER BY 에서 CASE 문 사용하기. (14) | 2020.02.12 |
[SQL] 랭크함수와 PARTITION BY를 이용하여 1등만 뽑아보자. (4) | 2020.01.29 |
[SQL] 함수(Function)에 대해 알아보자. (1) | 2020.01.16 |
[SQL] CASE WHEN, 데이터 형식 변환 오류 해결 방법 (2) | 2020.01.02 |