반응형

 

데이터를 조회할때,

컬럼 혹은 변수에 값이 없으면 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, NULLNULLNULLNULLNULL10) AS age,
       COALESCE(@name, NULLNULLNULLNULL'홍길동') AS name;
cs

 

ISNULL 함수와 가장 큰 차이는 바로 위에 보이는 COALESCE 함수 안에 있는 NULL값들의 갯수이다.

ISNULL 함수는 1개의 변수값이 NULL인지 체크하지만,

COALESCE 함수는 N개의 변수값이 NULL인지 체크한다. (단, 우선순위는 왼쪽이 가장 높다.)

 

다양하게 COALESCE 함수 예제를 실행해본 결과이다. 참고하자.

 

반응형

+ Recent posts