Heim >Datenbank >MySQL-Tutorial >Wie verwende ich die MySQL-Case-Anweisung?
MySQL ist ein relationales Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde und derzeit ein Produkt von Oracle ist.
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<'2016-02-14 16:24:42' then 'before' else 'now' end stage from log_login order by CreateTime DESC
Die zweite Schreibweise
SELECT CallerNumber, CASE IsLocal WHEN 0 THEN '外线' WHEN 1 THEN '内线' END FROM cdr
2. Teilen Sie eine Zeile in mehrere Spalten auf
zB:
SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck
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:
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
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
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!