>  기사  >  데이터 베이스  >  mysql 케이스문을 어떻게 사용하나요?

mysql 케이스문을 어떻게 사용하나요?

藏色散人
藏色散人원래의
2019-05-13 11:15:585995검색

MySQL은 스웨덴 MySQL AB 회사에서 개발한 관계형 데이터베이스 관리 시스템으로 현재 Oracle의 제품입니다.

mysql 케이스문을 어떻게 사용하나요?

그럼 mysql 케이스문은 어떻게 사용하나요?

mysql 케이스문 사용법:

구조: 케이스 when… then …end

1. 판단하는 동안 값을 변경하세요.

eg:

select OperatorAccount,
        case
     when CreateTime>'2016-02-14 16:24:42' then 'after'
         when CreateTime<&#39;2016-02-14 16:24:42&#39; then &#39;before&#39;
         else &#39;now&#39; end stage
from log_login order by CreateTime DESC

mysql 케이스문을 어떻게 사용하나요?

두 번째 작성 방법

 SELECT CallerNumber, CASE IsLocal
         WHEN 0 THEN &#39;外线&#39;
          WHEN 1 THEN &#39;内线&#39; END
  FROM cdr

mysql 케이스문을 어떻게 사용하나요?

2. 한 행을 여러 열로 나눕니다.

예:

SELECT SipAccount, COUNT(1) AS number,IsCheck
  FROM cdr
  GROUP BY SipAccount,IsCheck

mysql 케이스문을 어떻게 사용하나요?

이 통계 결과를 분할합니다(0은 점수가 없음, 1은 우수함, 2는 자격 있음, 3은 자격 없음)

최종 결과는 다음과 같습니다.

mysql 케이스문을 어떻게 사용하나요?

그래서 결국 행을 세 개의 열로 분할해야 합니다. 명령문은 다음과 같습니다

 SELECT SipAccount,
              (CASE IsCheck WHEN 1 THEN number END) youxiu,
              (CASE IsCheck WHEN 2 THEN number END) hege,
              (CASE IsCheck WHEN 3 THEN number END) buhege
 FROM
          (SELECT SipAccount, COUNT(1) AS number,IsCheck
           FROM cdr
           GROUP BY SipAccount,IsCheck) AS a

mysql 케이스문을 어떻게 사용하나요?

이제 결과는 세 개의 열로 분할되었지만 최종 결과는 다음과 같습니다. 다음으로 sipaccount에 따라 그룹화하고 동시에 결과를 처리해야 합니다. 성명서는 다음과 같습니다:

 SELECT sipaccount,
        IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu,
        IF(MAX(hege) IS NULL,0, MAX(hege)) hege,
        IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege
FROM
        (SELECT SipAccount,
        (CASE IsCheck WHEN 1 THEN number END) youxiu,
        (CASE IsCheck WHEN 2 THEN number END) hege,
        (CASE IsCheck WHEN 3 THEN number END) buhege
        FROM
     (SELECT SipAccount, COUNT(1) AS number,IsCheck  FROM cdr  GROUP BY SipAccount,IsCheck) AS a) AS b
                    GROUP BY sipaccount

mysql 케이스문을 어떻게 사용하나요?

드디어 이런 결과가 나왔습니다. 정확히 우리에게 필요한 형식입니다.

위 내용은 mysql 케이스문을 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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