>데이터 베이스 >MySQL 튜토리얼 >SQL의 CASE 문을 사용하여 If-Then-Else 논리를 어떻게 구현할 수 있습니까?

SQL의 CASE 문을 사용하여 If-Then-Else 논리를 어떻게 구현할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-29 05:10:11361검색

How Can I Implement If-Then-Else Logic Using SQL's CASE Statement?

SQL의 If-Then-Else 논리

SQL은 CASE 문을 사용하여 조건부 논리를 수행하는 기능을 제공합니다. if-then-else 구문에 대한 직접적인 구문을 제공하지 않을 수도 있지만 이를 통해 일련의 조건과 해당 작업을 정의할 수 있습니다.

문제:

특정 우선순위에 따라 테이블에서 데이터를 선택하려는 경우:

  • 프로젝트에 기록이 있으면 반환
  • 고객에게 기록이 있으면 반품하세요.
  • 회사에 기록이 있으면 반품하세요.

CASE를 사용한 해결 방법:

SELECT product, price
FROM table1
WHERE CASE
  WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1
  WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2
  WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3
  ELSE NULL
END IS NOT NULL;

이 쿼리는 각 조건을 순차적으로 평가합니다. 프로젝트에 레코드가 있으면 일치하는 행을 반환합니다. 그렇지 않으면 고객을 확인한 다음 회사를 확인합니다. 조건 중 하나라도 만족하는 행만 선택됩니다.

예:

다음 표에는 일부 샘플 데이터가 포함되어 있습니다.

product price project customer company
A 10 1 NULL NULL
B 20 NULL 2 NULL
C 30 NULL NULL 3

실행 중 쿼리는 다음 결과를 반환합니다.

product price
A 10

project =라는 행이 있으므로 1의 경우 다른 조건은 무시하고 "A"라는 상품이 있는 행이 선택됩니다.

위 내용은 SQL의 CASE 문을 사용하여 If-Then-Else 논리를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.