>  기사  >  데이터 베이스  >  SQL에서 대소문자 사용

SQL에서 대소문자 사용

angryTom
angryTom원래의
2020-02-13 16:35:0422469검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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