SQL에서 대소문자 사용

angryTom
풀어 주다: 2020-02-13 16:35:04
원래의
22498명이 탐색했습니다.

SQL에서 대소문자 사용

SQL에서 대소문자 사용

case에는 두 가지 형식이 있습니다. 간단한 케이스 기능과 케이스 검색 기능.

1. 단순 케이스 기능

case sex
  when '1' then '男'
  when '2' then '女’
  else '其他' end
로그인 후 복사

2. 케이스 검색 기능

case when sex = '1' then '男'
     when sex = '2' then '女'
     else &#39;其他&#39; end</span>
로그인 후 복사

이 두 가지 방법은 동일한 기능을 수행할 수 있습니다. 단순 사례 기능은 상대적으로 작성이 간단하지만 사례 검색 기능에 비해 술어 작성 등 기능상 일부 제한이 있습니다. (무료 학습 영상 튜토리얼 추천: mysql video tutorial)

주의가 필요한 또 다른 문제는 케이스 함수가 ​​조건을 충족하는 첫 번째 값만 반환한다는 것입니다. 나머지 케이스 부분은 자동으로 무시됩니다.

예를 들어, 다음 SQL에서는 "두 번째 유형"의 결과를 결코 얻을 수 없습니다.

case when col_1 in (&#39;a&#39;,&#39;b&#39;) then &#39;第一类&#39;
     when col_1 in (&#39;a&#39;) then &#39;第二类&#39;
     else &#39;其他&#39; 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 &#39;男&#39;
      when 2 then &#39;女&#39;
      else &#39;空的&#39;
      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 &#39;男&#39;
      when 2 then &#39;女&#39;
      else &#39;空的&#39;
      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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿