SQL에서 데이터를 처리하다 보면 다양한 조건에 따라 결과를 다르게 표시해야 하는 경우가 많습니다. 이때 조건식을 다루는 스칼라 함수를 사용할 수 있습니다. 이번 글에서는 SQL에서 주로 사용되는 CASE와 IFNULL 함수에 대해 알아보겠습니다.
1. CASE
함수
CASE
함수는 조건에 따라 다른 결과를 표시하는데 사용됩니다. 기본적인 구조는 다음과 같습니다.
SELECT column_name,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
FROM table_name;
위의 코드에서 condition1
이 참이면 result1
을 반환하고, condition2
가 참이면 result2
를 반환하며, 어떤 조건도 참이 아니면 ELSE
절에 지정된 result
를 반환합니다.
예를 들어, 성적에 따라 학점을 부여하는 경우를 생각해보면 다음과 같이 CASE
함수를 사용할 수 있습니다.
SELECT student_name,
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM student_scores;
2. IFNULL
함수
IFNULL
함수는 NULL 값을 다른 값으로 대체하는데 사용됩니다. 기본적인 구조는 다음과 같습니다.
SELECT column_name,
IFNULL(column_name, replacement_value) AS new_column_name
FROM table_name;
위의 코드에서 column_name
의 값이 NULL이면 replacement_value
로 대체하여 new_column_name
으로 표시합니다.
예를 들어, 특정 컬럼의 값이 NULL인 경우에 기본값을 지정하여 표시하고 싶을 때 다음과 같이 IFNULL
함수를 사용할 수 있습니다.
SELECT product_name,
IFNULL(sale_price, 0) AS displayed_price
FROM products;
위의 쿼리는 sale_price
가 NULL인 경우 0으로 대체하여 displayed_price
로 표시합니다.
조건식을 다루는 스칼라 함수를 잘 활용하면 데이터 처리 과정에서 유용하게 활용할 수 있습니다.
이상으로 SQL에서 조건식을 다루는 CASE
와 IFNULL
함수에 대해 알아보았습니다. 여기서 다루지 않은 다양한 스칼라 함수들도 많이 존재하니 필요에 따라 해당 문서를 참고하여 활용하세요.