Heim >Datenbank >MySQL-Tutorial >Wie verwende ich die MySQL-Case-Anweisung?

Wie verwende ich die MySQL-Case-Anweisung?

藏色散人
藏色散人Original
2019-05-13 11:15:586027Durchsuche

MySQL ist ein relationales Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde und derzeit ein Produkt von Oracle ist.

Wie verwende ich die MySQL-Case-Anweisung?

Wie verwende ich also die MySQL-Case-Anweisung?

Verwendung der MySQL-Case-Anweisung:

Struktur: case when… then …end

1. Ändern Sie den Wert während der Beurteilung

z. B.:

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

Wie verwende ich die MySQL-Case-Anweisung?

Die zweite Schreibweise

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

Wie verwende ich die MySQL-Case-Anweisung?

2. Teilen Sie eine Zeile in mehrere Spalten auf

zB:

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

Wie verwende ich die MySQL-Case-Anweisung?

Teilen Sie dieses statistische Ergebnis auf (0 bedeutet keine Punktzahl, 1 bedeutet ausgezeichnet, 2 bedeutet qualifiziert, 3 bedeutet nicht qualifiziert)

Das Endergebnis ist wie folgt:

Wie verwende ich die MySQL-Case-Anweisung?

Also am Ende müssen wir die Zeile in drei Spalten aufteilen, die Aussage lautet wie folgt

 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

Wie verwende ich die MySQL-Case-Anweisung?

Das Ergebnis sieht nun so aus: Ja, Sie werden feststellen, dass das Endergebnis nicht Ihren Anforderungen entspricht, obwohl es in drei Spalten aufgeteilt ist. Als Nächstes müssen Sie die Ergebnisse nach Sipaccount gruppieren und die Ergebnisse gleichzeitig verarbeiten. Die Aussage lautet wie folgt:

 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

Wie verwende ich die MySQL-Case-Anweisung?

Endlich dieses Ergebnis erhalten. Genau das Format, das wir brauchen.

Das obige ist der detaillierte Inhalt vonWie verwende ich die MySQL-Case-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn