이 기사에서는 SQL Server에서 CASE 문 처리 기능을 사용하는 방법을 특정 구문과 예제와 함께 자세히 설명하여 기능을 더 잘 시각화하고 캡처하는 방법을 보여줍니다.
설명
CASE 문 IF-THEN-ELSE 문의 기능과 유사하게 SQL Server에서 분기 조건을 설정하는 데 사용됩니다.
CASE에는 2가지 형식이 있습니다.
- 단순 CASE라고도 하는 단순 CASE 함수.
- 검색 기능 CASE는 검색된 CASE라고도 합니다.
내부:
- 단순 CASE는 표현식을 단순 표현식 세트와 비교하여 결과를 결정하는 것입니다.
- 검색된 CASE는 일련의 부울 표현식을 평가하여 결과를 결정하는 것입니다.
- 두 형식 모두 ELSE 인수를 지원합니다(필수는 아님).
구문
SQL Server에서 CASE 문을 사용하려면 다음 구문을 사용합니다.
간단한 CASE
CASE bieuthuc_dauvao
WHEN bieuthuc_1 THEN ketqua_1
WHEN bieuthuc_2 THEN ketqua_2
.
WHEN bieuthuc_n THEN ketqua_n
ELSE ketqua_khac
END
또는 검색된 CASE
CASE
WHEN dieukien_1 THEN ketqua_1
WHEN dieukien_2 THEN ketqua_2
.
WHEN dieukien_n THEN ketqua_n
ELSE ketqua_khac
END
매개변수 :
- bieuthuc_dauvao: 표현식은 제공된 각 값과 비교됩니다.
- bieuthuc_1, bieuthuc_2, bieuthuc_n: 표현식은 입력 표현식과 차례로 비교하는 데 사용됩니다. 표현식이 bieuthu_dauvao와 일치하면 CASE는 다음 명령문을 실행하고 더 이상의 비교는 하지 않습니다.
- dieukien_1, dieukien_2, dieukien_n :조건을 검토하고 나열된 순서대로 승인합니다. 조건이 true로 결정되면 CASE는 결과를 반환하고 더 이상의 조건은 평가되지 않습니다. 모든 조건은 동일한 데이터 유형이어야 합니다.
- ketqua_1, ketqua_2, ketqua_n :조건을 고려하여 반환된 결과는 참이다. 모든 값은 동일한 데이터 유형이어야 합니다.
참고 :
- 일치가 없는 경우 TRUE인 경우 CASE 문은 ELSE 절에 결과를 반환합니다.
- ELSE 절이 없고 TRUE 조건이 없으면 CASE 문은 NULL을 반환합니다.
- 조건은 나열된 순서대로 평가됩니다. 조건이 true로 결정되면 CASE 문은 결과를 반환하고 더 이상의 조건은 평가되지 않습니다.
- CASE는 SQL Server의 이후 버전(SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005)에서 사용할 수 있습니다.
예를 들어
SQL Server에서 CASE 문의 몇 가지 예를 살펴보고 살펴보세요.
예 1:간단한 CASE
변환 표의 코드 열을 기반으로 TipsMake.com 웹사이트의 섹션을 확인해야 한다고 가정합니다.
- 코드 ='01'이 'Laptrinh-TipsMake.com'인 경우
- 코드 ='02'가 'Connghe-TipsMake.com'인 경우
- 코드 ='03'이 'Cuocsong-TipsMake.com'인 경우
- 그와 반대로 'Khoahoc-TipsMake.com' 섹션에서는 1에서 3까지가 아닙니다.
SELECT tenchuyenmuc, Code
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code
반환된 결과:
텐추옌무크 코드 추옌무 SQL Server 01 Laptrinh-TipsMake.com Linux 02 Congnghe-TipsMake.com Python 01 Laptrinh-TipsMake.com JavaScript 01 Laptrinh-TipsMake.com Android 02 Congnghe-TipsMake.com Giai tri 03 Cuocsong-TipsMake.com Cuocsong-TipsMake.com 과학 곡선 04 Khoahoc-TipsMake.com pha Science 05 Khoahoc-TipsMake.com예시 2:검색된 CASE
SELECT tenchuyenmuc,
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END
FROM chuyenmuc;
다음과 같은 ELSE 조건도 사용할 수 없습니다.
SELECT tenchuyenmuc, Code
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code
또는:
SELECT tenchuyenmuc,
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
END
FROM chuyenmuc;
ELSE 절이 생략된 경우 조건이 true가 아닌 경우 CASE 문은 NULL을 반환합니다.
예 3:두 조건 비교
다음은 CASE 문을 사용하여 다양한 조건을 비교하는 방법을 보여주는 예입니다.
SELECT
CASE
WHEN code < 2 THEN 'Laptrinh-TipsMake.com'
WHEN code = 2 THEN 'Congnghe-TipsMake.com'
END
FROM chuyenmuc;
조건이 나열된 순서대로 차례로 비교된다는 것을 기억하십시오. 조건이 참으로 결정되면 CASE 문은 즉시 결과를 반환하고 다른 조건은 평가되지 않습니다. 따라서 조건이 나열된 순서를 선택할 때 주의해야 합니다.
SQL Server의 CASE 함수에 대한 더 구체적인 예 보기