Maison >base de données >tutoriel mysql >Comment utiliser l'instruction de cas MySQL ?

Comment utiliser l'instruction de cas MySQL ?

藏色散人
藏色散人original
2019-05-13 11:15:586023parcourir

MySQL est un système de gestion de bases de données relationnelles développé par la société suédoise MySQL AB et est actuellement un produit d'Oracle.

Comment utiliser l'instruction de cas MySQL ?

Alors, comment utiliser l'instruction mysql case ?

Utilisation de l'instruction de cas mysql :

Structure : cas quand… puis …fin

1 Changez sa valeur en jugeant

par exemple :

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
.

Comment utiliser linstruction de cas MySQL ?

La deuxième façon d'écrire

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

Comment utiliser linstruction de cas MySQL ?

2. Divisez une ligne en plusieurs colonnes

par exemple :

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

Comment utiliser linstruction de cas MySQL ?

Partager ce résultat statistique (0 signifie aucun score, 1 signifie excellent, 2 signifie qualifié, 3 signifie non qualifié)

Le résultat final est le suivant :

Comment utiliser linstruction de cas MySQL ?

Donc, à la fin, nous devons diviser la ligne en trois colonnes, l'instruction est la suivante

 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

Comment utiliser linstruction de cas MySQL ?

Maintenant, le résultat est comme ceci Oui, vous constaterez que même s'il est divisé en trois colonnes, le résultat final n'est pas ce dont vous avez besoin. Ensuite, vous devez regrouper les résultats selon sipaccount et traiter les résultats en même temps. La déclaration est la suivante :

 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

Comment utiliser linstruction de cas MySQL ?

Enfin obtenu ce résultat. Exactement le format dont nous avons besoin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn