SQL WHEN CASE: 완전한 가이드

마지막 업데이트 : 20 10월 2025
SQL WHEN CASE

SQL(구조화 질의 언어)은 관계형 데이터베이스를 관리하고 조작하는 강력한 도구입니다. SQL의 가장 유용한 기능 중 하나는 조건문을 처리할 수 있다는 점입니다. 조건문을 사용하면 특정 조건에 따라 다른 작업을 지정할 수 있으므로 쿼리에 유연성과 제어력을 제공합니다. SQL의 다양한 조건문 중에서도 WHEN CASE 문은 다재다능하고 효율적인 도구 로 두드러집니다 . 이 문을 사용하면 쿼리 내에서 조건 논리를 수행할 수 있으므로 SQL 도구 모음에서 매우 중요한 역할을 합니다.

SQL WHEN CASE: 기본 사항 살펴보기

SQL WHEN CASE 문의 모든 잠재력을 이해하려면 기본 구문과 기능을 이해하는 것이 중요합니다. SQL WHEN CASE 문은 주로 조건부 평가를 수행하고 충족된 조건에 따라 특정 결과를 반환하는 데 사용됩니다. SQL WHEN CASE 문의 기본 구조를 살펴보겠습니다.

SELECT columna1,
       columna2,
       (CASE
           WHEN condicion1 THEN resultado1
           WHEN condicion2 THEN resultado2
           ELSE resultado
        END) AS alias
FROM nombre_tabla;

위의 구문에서, columna1 y columna2 지정된 테이블에서 검색하려는 열을 나타냅니다. 키워드 CASE 조건 평가를 시작한 후 일련의 조건이 이어집니다. WHEN 그리고 그에 따른 결과. 조항 ELSE 아무 조건도 충족되지 않으면 기본 결과를 제공합니다. 마지막으로 핵심 단어는 END 조건문을 마무리합니다. 평가 결과는 쉽게 참조할 수 있도록 별칭에 지정됩니다.

SQL WHEN CASE에 대해 더 자세히 알아보기

이제 SQL WHEN CASE 문의 기본 구조를 살펴보았으므로 다양한 측면을 더 자세히 살펴보겠습니다. 이 강력한 조건문의 응용 프로그램, 변형 및 모범 사례를 탐구하면 이 강력한 조건문의 잠재력을 최대한 활용할 수 있습니다.

1. 간단한 조건 평가를 위한 SQL WHEN CASE

SQL WHEN CASE 문의 가장 간단한 사용 사례는 직접적인 조건부 평가를 수행하는 것입니다. 조건과 해당 결과를 지정하면 쿼리 결과를 효과적으로 제어할 수 있습니다. 다음 예를 고려해 보겠습니다.

SELECT id_pedido,
       fecha_pedido,
       (CASE
           WHEN monto_total > 1000 THEN 'Pedido de alto valor'
           ELSE 'Pedido estándar'
        END) AS categoria_pedido
FROM pedidos;

이 예에서 우리는 열을 검색합니다 id_pedido y fecha_pedido 테이블에서 pedidos. 문장 CASE 열을 평가하다 monto_total총 금액이 1000을 초과하면 '높은 가치 주문' 값을 할당하고, 그렇지 않으면 '표준 주문' 값을 할당합니다. 결과는 별칭으로 표시됩니다. categoria_pedido.

2. 집계 함수와 함께 SQL WHEN CASE 사용

SQL WHEN CASE 문은 집계 함수와 함께 사용하여 조건부 계산을 수행할 수도 있습니다. 이를 통해 특정 조건에 따라 값을 동적으로 계산할 수 있습니다. 다음 시나리오를 생각해 보세요.

  최신 데이터 분석 및 데이터 아키텍처에 대한 완벽 가이드

라는 테이블이 있습니다 empleados 기둥과 함께 id_empleado, nombre, apellido y salario. 특정 임계값 아래의 급여를 제외하고 직원들의 평균 급여를 계산하고 싶습니다. SQL WHEN CASE 문을 사용하여 이를 달성하는 방법은 다음과 같습니다.

SELECT (CASE
           WHEN salario > 50000 THEN salario
           ELSE NULL
        END) AS salario_filtrado,
       AVG(salario) AS salario_promedio
FROM empleados;

이 예에서, 다음 문장은 CASE 열을 평가하다 salario, 급여가 50000을 초과하는 경우 급여 값을 할당하고 NULL 그렇지 않으면. 기능 AVG 필터링된 급여를 제외하고 평균 급여를 계산하는 데 사용됩니다. 이렇게 하면 집계 계산에 대한 제어력이 향상되어 원치 않는 데이터를 필터링할 수 있습니다.

3. SQL WHEN CASE를 사용하여 다중 조건 처리

어떤 경우에는 단일 SQL WHEN CASE 문 내에서 여러 조건을 평가해야 할 수도 있습니다. 다행히도 SQL은 이러한 시나리오를 처리할 수 있는 간단한 방법을 제공합니다. 여러 조건을 결합함으로써 WHEN 그리고 해당 결과를 사용하여 복잡한 조건부 평가를 만들 수 있습니다. 다음 예를 고려해 보세요.

SELECT nombre_producto,
       precio_unitario,
       (CASE
           WHEN precio_unitario > 50 THEN 'Costoso'
           WHEN precio_unitario > 20 THEN 'Moderado'
           ELSE 'Accesible'
        END) AS categoria_precio
FROM productos;

이 예에서, 다음 문장은 CASE 열을 평가하다 precio_unitario 그리고 해당 가격 범주를 지정합니다. 조건에 따라 충족됨. 조건을 효과적으로 구조화하면 다양한 시나리오를 처리하고 그에 따라 데이터를 분류할 수 있습니다.

4. JOIN 작업에서 SQL WHEN CASE 사용

SQL의 WHEN CASE 문은 JOIN 연산 내에서도 사용할 수 있어 특정 조건에 따라 테이블을 조건부로 조인할 수 있습니다. 이를 통해 더욱 동적이고 유연한 데이터 검색이 가능합니다. 다음 시나리오를 고려해 보세요.

  MySQL의 장단점: 완전한 분석

보드가 두 개 있습니다. clientes y pedidos, 공통 열이 있는 id_cliente. 고객 정보와 해당 주문 상태를 검색하고 싶습니다. SQL WHEN CASE 문을 사용하여 이를 달성하는 방법은 다음과 같습니다.

SELECT c.id_cliente,
       c.nombre_cliente,
       p.estado_pedido
FROM clientes c
JOIN pedidos p ON c.id_cliente = p.id_cliente
WHERE (CASE
           WHEN p.estado_pedido = 'Enviado' THEN 1
           ELSE 0
        END) = 1;

이 예에서, 다음 문장은 CASE 그것은 내에서 사용됩니다 절 WHERE 조건부로 필터링하다 테이블이 합쳐졌습니다. '배송됨'이라는 주문 상태의 행만 반환되므로, 더욱 구체적이고 관련성 있는 결과가 제공됩니다.

SQL WHEN CASE FAQ

  1. SQL WHEN CASE 문의 목적은 무엇입니까? 조건부 평가를 수행하고 충족된 조건에 따라 특정 결과를 반환하는 데 사용됩니다. 유연성을 제공하며 SQL 쿼리에서의 제어다양한 시나리오를 효과적으로 처리할 수 있습니다.
  2. 하나의 SQL WHEN CASE 문에서 여러 개의 WHEN 조건을 사용할 수 있나요? 네, 여러 조건을 사용할 수 있습니다. WHEN 단일 SQL WHEN CASE 문에서. 여러 조건과 해당 결과를 결합하면 복잡한 조건부 평가를 만들 수 있습니다.
  3. SQL WHEN CASE 문에서 ELSE 절은 필수입니까? 아니요, ELSE 절은 SQL WHEN CASE 문에서 필수가 아닙니다. 그러나 어떤 조건도 충족되지 않을 경우 기본 결과를 제공하기 위해 ELSE 절을 포함하는 것이 좋습니다.
  4. SQL WHEN CASE 문을 집계 함수와 함께 사용할 수 있나요? 네, 집계 함수와 함께 SQL WHEN CASE 문을 사용하여 조건부 계산을 수행할 수 있습니다. 이를 통해 특정 조건에 따라 값을 동적으로 계산할 수 있습니다.
  5. SQL WHEN CASE 문은 SELECT 문에만 적용할 수 있나요? 아니요, SQL WHEN CASE 문은 SELECT, WHERE 문, JOIN 연산을 포함한 SQL 쿼리의 다양한 부분에서 사용할 수 있습니다. 조건부로 제어할 수 있는 유연성을 제공합니다. 귀하의 질의의 다양한 측면.
  6. SQL WHEN CASE 문을 사용할 때 성능에 고려할 사항이 있나요? 이 문장은 강력한 도구이지만, 쿼리 성능에 미치는 영향을 고려하는 것이 중요합니다. 모든 조건문과 마찬가지로 과도하거나 복잡한 평가는 쿼리 실행 시간에 영향을 미칠 수 있습니다. 시도하는 것이 좋습니다 귀하의 쿼리를 최적화하세요 최적의 성능을 위해.
  SQL GROUP BY SUM: 효율적인 쿼리를 위한 팁과 요령

결론

SQL의 WHEN CASE 문은 SQL 개발자에게 필수적인 도구입니다. 조건부 평가를 수행하고 특정 결과를 반환하는 기능을 통해 다양한 시나리오를 쉽고 정확하게 처리할 수 있습니다. SQL 조건문을 숙달하면 데이터베이스 관리 능력을 향상시키고 데이터 조작에 있어 새로운 가능성을 열어갈 수 있습니다.