SQL에서 조건과 논리 함수는 데이터를 처리하고 분석할 때 매우 유용합니다. 특히, 데이터를 특정 조건에 따라 변환하거나 필터링해야 할 때 자주 사용됩니다. 이번 포스팅에서는 조건 및 논리 함수의 기본 개념과 활용 예제를 소개합니다.
1. CASE 함수
CASE
함수는 SQL에서 조건에 따라 다른 값을 반환하는 가장 기본적인 논리 함수입니다. 여러 조건을 처리할 수 있어 유연성이 뛰어납니다.
기본 사용법
SELECT
user_id,
CASE
WHEN age < 18 THEN 'Minor'
WHEN age BETWEEN 18 AND 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM users;
위 쿼리는 사용자 나이에 따라 세 그룹으로 나눕니다. CASE
함수는 다양한 조건을 처리할 수 있는 강력한 도구입니다.
2. IF 함수 (MySQL 전용)
IF
함수는 특정 조건을 간단히 처리할 때 유용합니다. IF
는 조건이 참일 때와 거짓일 때 각각 반환할 값을 지정합니다.
기본 사용법
SELECT
user_id,
IF(status = 'active', 'Yes', 'No') AS is_active
FROM users;
위 쿼리는 사용자의 상태(status
)가 ‘active’인지 여부를 판단하여 ‘Yes’ 또는 ‘No’를 반환합니다. IF
함수는 단순한 조건문 처리에 적합합니다.
3. COALESCE 함수
COALESCE
함수는 여러 값 중 NULL이 아닌 첫 번째 값을 반환합니다. 데이터를 정리하거나 NULL 값을 대체할 때 자주 사용됩니다.
기본 사용법
SELECT
user_id,
COALESCE(phone_number, 'No Phone') AS contact_number
FROM users;
이 쿼리는 사용자의 전화번호가 없을 경우, ‘No Phone’이라는 기본값을 반환합니다. COALESCE
함수는 데이터의 완전성을 보장하는 데 유용합니다.
4. NULLIF 함수
NULLIF
함수는 두 값이 동일할 경우 NULL을 반환하고, 그렇지 않으면 첫 번째 값을 반환합니다. 중복 데이터 처리에 활용될 수 있습니다.
기본 사용법
SELECT
order_id,
NULLIF(discount, 0) AS effective_discount
FROM orders;
이 쿼리는 할인값이 0인 경우 NULL을 반환하며, 그렇지 않으면 해당 값을 그대로 반환합니다. NULLIF
함수는 데이터를 정리하거나 중복 처리를 할 때 유용합니다.
활용 예제
조건 및 논리 함수는 단독으로 사용되기도 하지만, 조합하여 강력한 데이터를 처리할 수 있습니다.
복합 활용 예제
SELECT
user_id,
CASE
WHEN age < 18 THEN 'Minor'
WHEN age BETWEEN 18 AND 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group,
IF(status = 'active', 'Active User', 'Inactive User') AS user_status,
COALESCE(phone_number, 'No Phone') AS contact_number,
NULLIF(discount, 0) AS effective_discount
FROM users
LEFT JOIN orders ON users.user_id = orders.user_id;
CASE
를 사용하여 연령대를 그룹화.IF
로 사용자 상태를 확인.COALESCE
로 NULL 값을 대체.NULLIF
로 불필요한 데이터를 처리.
결론
조건 및 논리 함수는 데이터를 정리하고 인사이트를 도출하는 데 매우 강력한 도구입니다. CASE
, IF
, COALESCE
, NULLIF
함수는 그중에서도 실무에서 자주 사용되며, 상황에 맞게 조합하면 더 강력한 결과를 얻을 수 있습니다.
답글 남기기