SQL CASE 문
그만큼 CASE 성명서 SQL 다음을 통합할 수 있는 다목적 조건식입니다. 조건부 논리 우리의 쿼리 내에서 직접. 이를 통해 동적 쿼리 출력을 활성화하는 특정 조건을 기반으로 특정 결과를 반환할 수 있습니다. 당신이 필요 여부 새 열 만들기 기존 항목을 수정하거나 쿼리 결과를 사용자 정의하세요. CASE문 다 처리할 수 있어요.
이 글에서 우리는 다음과 같은 내용을 배울 것입니다. SQL CASE문 이 기능을 활용하여 SQL 쿼리를 개선하는 방법을 보여주는 명확한 예와 사용 사례를 자세히 설명합니다.
SQL의 CASE 문
- 그만큼
CASE성명서 SQL 쿼리 내에서 조건부 논리를 수행할 수 있는 조건식입니다.
- 조건부 논리를 기반으로 새 열을 생성하고 특정 조건에 따라 사용자 지정 값을 제공하거나 쿼리 출력을 제어하는 데 일반적으로 사용됩니다.
- 어떤 조건도 참이 아니면, 또 다른 부분이 실행됩니다. ELSE 부분이 없으면 반환됩니다. NULL.
통사론:
SQL에서 CASE 문을 사용하려면 다음 구문을 사용하십시오.
CASE 케이스_값
WHEN 조건 THEN 결과1
WHEN 조건 THEN 결과2
...
그렇지 않으면 결과
최종 사례;
SQL CASE 문의 예
더 잘 이해하기 위해 SQL의 CASE 문의 몇 가지 예를 살펴보겠습니다.
예제에 사용될 데모 SQL 테이블을 만들어 보겠습니다.
데모 SQL 데이터베이스
우리는 SQL CASE 문에 대한 예제로 이 샘플 SQL 테이블을 사용할 것입니다.
| 고객ID | 고객 이름 | 성 | 국가 | 나이 | 핸드폰 |
|---|---|---|---|---|---|
| 1 | 의심 | 타쿠르 | 인도 | 23 | xxxxxxxxx |
| 2 | 안전한 | 초프라 | 호주 | 21 | xxxxxxxxx |
| 3 | 나빈 | 툴라시 | 스리랑카 | 24 | xxxxxxxxx |
| 4 | 아디트야 | 아르판 | 오스트리아 | 21 | xxxxxxxxx |
| 5 | 니샨트. 살치차스 S.A. | 자이나교 | 스페인 | 22 | xxxxxxxxx |
다음 MySQL 쿼리를 작성하여 시스템에 동일한 데이터베이스를 생성할 수 있습니다.
CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');예 1: 간단한 CASE 표현식
이 예에서는 CASE 문을 사용합니다.
질문:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;산출:
| 고객 이름 | 나이 | 국적 |
|---|---|---|
| 의심 | 23 | 옥수수 |
| 안전한 | 21 | 외국의 |
| 나빈 | 24 | 외국의 |
| 아디트야 | 21 | 외국의 |
| 니샨트. 살치차스 S.A. | 22 | 외국의 |
예 2: 조건이 여러 개인 경우 SQL CASE
CASE 문에 여러 조건을 사용하여 여러 조건을 추가할 수 있습니다. 언제 조항.
질문:
SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;산출:
| 고객 이름 | 나이 | 수량텍스트 |
|---|---|---|
| 의심 | 23 | 나이가 22세 이상입니다. |
| 안전한 | 21 | 나이는 21세 |
| 나빈 | 24 | 나이가 22세 이상입니다. |
| 아디트야 | 21 | 나이는 21세 |
| 니샨트. 살치차스 S.A. | 22 | 나이는 30세 이상입니다. |
예 3: ORDER BY 절이 있는 CASE 문
CustomerID CustomerName LastName 국가 나이 및 전화번호가 포함된 고객 테이블을 살펴보겠습니다. 다음을 사용하여 Customer 테이블의 데이터를 확인할 수 있습니다. 주문 방법 CASE 문이 있는 절입니다.
질문:
SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);산출:
| 고객 이름 | 국가 |
|---|---|
| 안전한 | 호주 |
| 아디트야 | 오스트리아 |
| 니샨트. 살치차스 S.A. | 스페인 |
| 나빈 | 스리랑카 |
| 의심 | 인도 |
CASE 문에 대한 중요 사항
- SQL CASE 문은 지정된 조건에 따라 다양한 쿼리를 실행할 수 있는 조건식입니다.
- 항상 선택하다 CASE 문에서.
- END ELSE는 선택적인 구성 요소이지만 언제 이러한 경우는 CASE 문에 포함되어야 합니다.
- 조건 연산자(예: 어디 ) WHEN과 THEN 사이에 있습니다. 여기에는 다음을 사용하여 여러 조건문을 함께 묶는 것이 포함됩니다. 그리고 그리고 또는.
- 해결되지 않은 조건에 대응하기 위해 여러 WHEN 문과 ELSE 문을 포함할 수 있습니다.
결론
그만큼 CASE 문은 SQL 쿼리에 조건부 논리를 통합하기 위한 강력한 메커니즘을 제공합니다. 이 문을 사용하면 다양한 조건을 처리하고 쿼리 출력을 효과적으로 사용자 정의할 수 있습니다. 구현 방법 이해 CASE 표현식을 사용하면 더욱 정교한 데이터 조작 및 보고를 수행하여 SQL 쿼리를 더욱 동적으로 만들고 다양한 시나리오에 대응할 수 있습니다.