집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 CASE 문을 사용하여 If-Then-Else 논리를 어떻게 구현할 수 있습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!