[sql] 조건식을 다루는 스칼라 함수 (CASE, IFNULL 등)

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에서 조건식을 다루는 CASEIFNULL 함수에 대해 알아보았습니다. 여기서 다루지 않은 다양한 스칼라 함수들도 많이 존재하니 필요에 따라 해당 문서를 참고하여 활용하세요.