SQL 조건 및 논리 함수 활용하기

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 함수는 그중에서도 실무에서 자주 사용되며, 상황에 맞게 조합하면 더 강력한 결과를 얻을 수 있습니다.


게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다