>  기사  >  데이터 베이스  >  SQL에서 Case 사용

SQL에서 Case 사용

angryTom
angryTom원래의
2020-02-18 13:12:08182642검색

SQL에서는 선택 판단에 "Case When"문을 사용합니다. 실행 중에는 조건을 먼저 판단한 후 판단 결과 구문인 "CASE 필드 WHEN 조건 1 THEN 연산 1 WHEN"에 따라 해당 연산을 수행합니다. 조건 2 THEN 연산 2...ELSE 연산 n END;".

SQL에서 Case 사용

이 튜토리얼의 운영 환경: Windows 7 시스템, Microsoft SQL Server 2016 버전, Dell G3 컴퓨터.

SQL

case when의 사용법은 프로그래밍 언어의 if else 판단 및 switch case 문과 유사합니다. 이 명령문이 실행되면 먼저 조건을 판단한 후 판단 결과에 따라 해당 연산을 수행합니다.

Case에는 단순 사례 기능과 사례 검색 기능의 두 가지 형식이 있습니다.

Simple Case 함수:

CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘0’ THEN ‘女’
ELSE ‘其他’ END

Case 검색 기능:

CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘0’ THEN ‘女’
ELSE ‘其他’ END

물론 단순 Case 함수는 단순성이 더 좋지만 이런 종류의 단일 필드 단일 값 비교에만 적합하며, 사례 검색 기능은 모든 비교 상황에 적합하다는 것입니다.

또 주의해야 할 문제가 있습니다. Case 기능이 특정 조건을 만족하면 나머지 조건은 자동으로 무시됩니다. 따라서 여러 조건이 만족되더라도 실행 중에는 첫 번째 조건만 인식됩니다.

(PHP 중국어 웹사이트에는 무료 SQL 튜토리얼이 많이 있습니다. 누구나 배울 수 있습니다!)

CASE WHEN을 사용하면 조건에 따라 필드 값이 확인되는 논리적 익명 필드로 처리할 수 있습니다. 필요할 때 사용하세요. 필드 이름을 사용할 때 별칭을 정의하는 데 as를 사용할 수 있습니다. 이는 여전히 매우 추상적입니다. 아래 CASE WHEN의 사용 사례를 살펴보세요.

사용 시나리오

1. 알려진 데이터를 특정 방식으로 그룹화하고 분석할 수 있습니다.

SQL에서 Case 사용

이 나라의 인구 자료에 따르면 아시아와 북미의 인구를 세어보세요. 다음 SQL을 사용하십시오.

SELECT  CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END as '洲' , SUM(population) as '人口'
FROM test
GROUP BY CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END;

SQL에서 Case 사용

여기서 두 CASE WHEN은 하나의 필드와 동일하지만 두 번째 CASE WHEN의 THEN 값은 그것이 어떤 대륙인지 나타낼 필요가 없으며 단지 사용된 레코드를 그룹화하므로 THEN 뒤의 값은 이 세 가지 유형의 레코드만 구별할 수 있습니다. GROUP BY는 다음과 같이 쓸 수도 있습니다.

GROUP BY CASE country
WHEN '中国'     THEN 0
WHEN '印度'     THEN 0
WHEN '日本'     THEN 0
WHEN '美国'     THEN 1
WHEN '加拿大'  THEN 1
WHEN '墨西哥'  THEN 1
ELSE 2 END;

2. 하나의 SQL 문을 사용하여 다양한 조건의 그룹화를 완료합니다.

다음 데이터가 있습니다.

SQL에서 Case 사용

케이스 기능을 사용하여 국가 및 성별별로 그룹화를 완료하세요. 다음 SQL을 사용하십시오.

SELECT country,
SUM( CASE WHEN sex = '1' THEN population ELSE 0 END  ),  --男性人口
SUM( CASE WHEN sex = '2' THEN population ELSE 0 END )   --女性人口
FROM  Table_A
GROUP BY country;

다음 결과가 얻어집니다.

SQL에서 Case 사용

첫 번째 CASE WHEN을 설명하십시오.

CASE WHEN sex = '1' THEN
population ELSE 0 END

기록의 성별이 1인 경우 이 필드의 값은 해당 항목의 인구 값입니다. 그렇지 않으면 0이므로 한 국가의 남성 인구를 계산할 수 있습니다.

더 많은 SQL 및 기타 프로그래밍 입문자습서를 보려면 PHP 중국어 웹사이트에 계속 관심을 가져주세요! !​ ​

위 내용은 SQL에서 Case 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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