본문 바로가기

DB/SQL

[SQL] NULL값을 처리하는 함수 정리(NULLIF, COALESCE, NVL, NVL2) SQL Server, 오라클 비교

1. NULLIF


NULLIF 함수는 두 개의 인자를 비교하여, 두 인자가 동일할 경우 NULL을 반환하고 그렇지 않으면 첫 번째 인자를 반환합니다.

 

 

오라클 사용 예:

SELECT NULLIF(column1, column2) AS result
FROM table_name;

 

SQL Server 사용 예:

SELECT NULLIF(column1, column2) AS result
FROM table_name;

두 데이터베이스에서 동일하게 사용할 수 있습니다.

 

 

2. COALESCE


COALESCE 함수는 여러 인자 중 첫 번째로 NULL이 아닌 값을 반환합니다. 

 

 

오라클 사용 예:

SELECT COALESCE(column1, column2, column3) AS result
FROM table_name;

 

SQL Server 사용 예:

SELECT COALESCE(column1, column2, column3) AS result
FROM table_name;

COALESCE 또한 두 데이터베이스에서 동일하게 사용됩니다.

 

 

3. NVL


NVL 함수는 오라클 전용 함수로, 첫 번째 인자가 NULL이면 두 번째 인자를 반환합니다.

 

 

오라클 사용 예:

SELECT NVL(column1, 'default_value') AS result
FROM table_name;

 

SQL Server 대체 함수: ISNULL
SQL Server에서는 NVL 대신 ISNULL 함수를 사용할 수 있습니다.

SELECT ISNULL(column1, 'default_value') AS result
FROM table_name;

 

 

4. NVL2


NVL2는 오라클에서 제공하는 함수로, 첫 번째 인자가 NULL이 아니면 두 번째 인자를, NULL이면 세 번째 인자를 반환합니다.

 

 

오라클 사용 예:

SELECT NVL2(column1, 'not_null', 'is_null') AS result
FROM table_name;

 

SQL Server 대체 방법: CASE 문
SQL Server에서는 CASE 문을 사용하여 유사한 기능을 구현할 수 있습니다.

SELECT CASE 
           WHEN column1 IS NOT NULL THEN 'not_null' 
           ELSE 'is_null' 
       END AS result
FROM table_name;

 

 

 

반응형