SQL에서 대소문자 사용
case에는 두 가지 형식이 있습니다. 간단한 케이스 기능과 케이스 검색 기능.
1. 단순 케이스 기능
case sex when '1' then '男' when '2' then '女’ else '其他' end
2. 케이스 검색 기능
case when sex = '1' then '男' when sex = '2' then '女' else '其他' end</span>
이 두 가지 방법은 동일한 기능을 수행할 수 있습니다. 단순 사례 기능은 상대적으로 작성이 간단하지만 사례 검색 기능에 비해 술어 작성 등 기능상 일부 제한이 있습니다. (무료 학습 영상 튜토리얼 추천: mysql video tutorial)
주의가 필요한 또 다른 문제는 케이스 함수가 조건을 충족하는 첫 번째 값만 반환한다는 것입니다. 나머지 케이스 부분은 자동으로 무시됩니다.
예를 들어, 다음 SQL에서는 "두 번째 유형"의 결과를 결코 얻을 수 없습니다.
case when col_1 in ('a','b') then '第一类' when col_1 in ('a') then '第二类' else '其他' end
예제 데모:
먼저 id, name, sex의 세 가지 필드를 포함하는 users 테이블. 테이블 내용은 다음과 같습니다.
select * from users ID NAME SEX ---------- -------------------- ---------- 1 张一 2 张二 1 3 张三 4 张四 5 张五 2 6 张六 1 7 张七 2 8 张八 1
1 위 테이블 결과의 "sex"는 코드로 표현됩니다. 코드가 중국어로 표현되었으면 좋겠습니다. 명령문에서 Case 명령문을 사용할 수 있습니다:
select u.id,u.name,u.sex, (case u.sex when 1 then '男' when 2 then '女' else '空的' end )性别 from users u; ID NAME SEX 性别 --------------------------------------- -------------------- ---------- ------ 1 张一 空的 2 张二 1 男 3 张三 空的 4 张四 空的 5 张五 2 女 6 张六 1 男 7 张七 2 女 8 张八 1 男
2. "sex" 열을 목록에 표시하지 않으려면 명령문은 다음과 같습니다.
select u.id,u.name, (case u.sex when 1 then '男' when 2 then '女' else '空的' end )性别 from users u; ID NAME 性别 --------------------------------------- -------------------- ------ 1 张一 空的 2 张二 男 3 张三 空的 4 张四 空的 5 张五 女 6 张六 男 7 张七 女 8 张八 男#🎜 🎜#3. 분할된 통계를 실현할 수 있는 case 와 함께 sum 을 사용하세요. 이제 위 표에서 다양한 성별의 인원수를 구하고 싶다면 sql문은 다음과 같습니다.
select sum(case u.sex when 1 then 1 else 0 end)男性, sum(case u.sex when 2 then 1 else 0 end)女性, sum(case when u.sex <>1 and u.sex<>2 then 1 else 0 end)性别为空 from users u; 男性 女性 性别为空 ---------- ---------- ---------- 3 2 0 -------------------------------------------------------------------------------- SQL> select count(case when u.sex=1 then 1 end)男性, count(case when u.sex=2 then 1 end)女, count(case when u.sex <>1 and u.sex<>2 then 1 end)性别为空 from users u; 男性 女 性别为空 ---------- ---------- ---------- 3 2 0
위 내용은 SQL에서 대소문자 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!