본문 바로가기

SQL Case When 사용법: 다중조건 및 서브쿼리 활용법

((!#) 2024. 7. 25.

case when
case when

SQL Case When 사용법: 다중조건 및 서브쿼리 활용법

case when 문법은 SQL에서 조건에 따라 다른 결과를 반환하는 데 사용됩니다. 특히, case when 다중조건 처리, count(case when) 활용, 오라클 case when 다중조건, oracle case when where절 적용 방법을 통해 더 복잡한 쿼리를 작성할 수 있습니다. 또한, case when 조건 2개sql case when 서브쿼리 사용법, mssql case when in절 활용법에 대해서도 자세히 알아보겠습니다.

https://youtu.be/jLoY9RpbXMs?si=3OcsgBwfioafIUvK

1. Case When 문법 이해하기

case when 문은 SQL에서 조건에 따라 결과를 반환하는 데 사용됩니다. 기본적인 문법은 다음과 같습니다:

CASE
    WHEN 조건1 THEN 결과1
    WHEN 조건2 THEN 결과2
    ELSE 결과N
END

위의 문법은 조건1이 참일 경우 결과1을, 조건2가 참일 경우 결과2를, 그 외의 경우 결과N을 반환합니다.

1.1 다중조건 처리

반응형

case when 다중조건을 처리하는 예제는 다음과 같습니다:

SELECT 
    CASE
        WHEN age >= 18 AND age < 30 THEN '청년'
        WHEN age >= 30 AND age < 50 THEN '중년'
        ELSE '기타'
    END AS age_group
FROM users;

위의 예제는 사용자의 나이에 따라 '청년', '중년', '기타'로 분류하는 쿼리입니다.

2. Count와 Case When 활용

count(case when)을 사용하여 조건에 맞는 행의 개수를 세는 방법은 다음과 같습니다:

SELECT 
    COUNT(CASE WHEN status = 'active' THEN 1 END) AS active_count,
    COUNT(CASE WHEN status = 'inactive' THEN 1 END) AS inactive_count
FROM users;

위의 예제는 'active' 상태와 'inactive' 상태인 사용자의 수를 각각 셉니다.

3. Oracle에서 Case When 사용하기

Oracle에서는 oracle case when where절을 사용하여 조건에 따른 필터링을 할 수 있습니다:

SELECT *
FROM employees
WHERE 
    CASE 
        WHEN department_id = 10 THEN 'Sales'
        WHEN department_id = 20 THEN 'Marketing'
        ELSE 'Other'
    END = 'Sales';

위의 예제는 부서 ID가 10인 직원들만 선택합니다.

3.1 Oracle 다중조건 처리

오라클 case when 다중조건 처리를 위한 예제는 다음과 같습니다:

SELECT 
    CASE
        WHEN salary > 10000 AND commission_pct IS NOT NULL THEN 'High Salary with Commission'
        WHEN salary > 10000 THEN 'High Salary'
        ELSE 'Other'
    END AS salary_category
FROM employees;

위의 예제는 직원의 급여와 커미션 비율에 따라 다른 결과를 반환합니다.

4. 서브쿼리와 Case When

sql case when 서브쿼리case when 서브쿼리를 사용하여 복잡한 조건을 처리할 수 있습니다:

SELECT 
    CASE
        WHEN (SELECT COUNT(*) FROM orders WHERE customer_id = customers.customer_id) > 10 THEN 'VIP'
        ELSE 'Regular'
    END AS customer_status
FROM customers;

위의 예제는 고객의 주문 수에 따라 'VIP'와 'Regular'로 분류합니다.

5. MSSQL에서 Case When 사용하기

MSSQL에서 mssql case when in절을 사용하는 방법은 다음과 같습니다:

SELECT 
    CASE
        WHEN product_id IN (1, 2, 3) THEN 'Category 1'
        WHEN product_id IN (4, 5, 6) THEN 'Category 2'
        ELSE 'Other'
    END AS product_category
FROM products;

위의 예제는 제품 ID에 따라 다른 카테고리로 분류합니다.

FAQ

Q1: SQL에서 Case When 문법은 어떤 용도로 사용되나요?

A1: Case When 문법은 조건에 따라 다른 결과를 반환하는 데 사용됩니다. 이를 통해 더 복잡한 쿼리를 작성할 수 있습니다.

Q2: 다중조건을 Case When에서 처리할 수 있나요?

A2: 네, AND 및 OR 연산자를 사용하여 다중조건을 처리할 수 있습니다.

Q3: Count와 Case When을 함께 사용할 수 있나요?

A3: 네, Count와 Case When을 함께 사용하여 조건에 맞는 행의 개수를 셀 수 있습니다.

Q4: Oracle에서 Case When을 사용할 때 주의할 점은 무엇인가요?

A4: Oracle에서는 Case When을 Where절에 사용할 수 있으며, 조건이 복잡할 경우 서브쿼리를 사용할 수 있습니다.

Q5: MSSQL에서 Case When과 In절을 함께 사용할 수 있나요?

A5: 네, MSSQL에서는 Case When과 In절을 함께 사용하여 특정 값들의 집합에 대해 조건을 처리할 수 있습니다.

입력한 본문 내용을 사용해서 SEO에 최적화된 새로운 블로그 게시물 작성을 완료하였습니다.

댓글