In SQL wird die „Case When“-Anweisung zur Auswahlbeurteilung verwendet. Während der Ausführung wird zuerst die Bedingung beurteilt und dann wird die entsprechende Operation basierend auf dem Beurteilungssyntax „CASE-Feld WHEN Bedingung 1“ durchgeführt THEN Operation 1 WHEN Bedingung 2 THEN Operation 2...ELSE Operation n END;".
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Microsoft SQL Server 2016-Version, Dell G3-Computer.
Verwendung von case when in SQL
case when ähnelt der if else-Beurteilung und der switch case-Anweisung in Programmiersprachen. Wenn diese Anweisung ausgeführt wird, wird zunächst die Bedingung beurteilt und dann wird basierend auf dem Beurteilungsergebnis die entsprechende Operation ausgeführt.
Case hat zwei Formate: einfache Case-Funktion und Case-Suchfunktion.
Einfache Case-Funktion:
CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’ ELSE ‘其他’ END
Case-Suchfunktion:
CASE WHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘0’ THEN ‘女’ ELSE ‘其他’ END
Natürlich ist die einfache Case-Funktion prägnanter, eignet sich aber nur für solche Einzelfelder Einzelwertvergleich. Der Vorteil der Fallsuchfunktion besteht darin, dass sie auf alle Vergleichssituationen anwendbar ist.
Es gibt ein weiteres Problem, das Aufmerksamkeit erfordert. Nachdem die Case-Funktion eine bestimmte Bedingung erfüllt, werden die übrigen Bedingungen automatisch ignoriert, selbst wenn mehrere Bedingungen erfüllt sind, wird bei der Ausführung nur die erste erkannt. eine Bedingung.
(Die chinesische PHP-Website bietet eine große Anzahl kostenloser SQL-Tutorials, die jeder gerne lernen kann!)
Wenn Sie CASE WHEN verwenden, können Sie es als logisch betrachten Bei anonymen Feldern wird der Feldwert anhand von Bedingungen bestätigt. Wenn Sie den Feldnamen verwenden müssen, können Sie as verwenden, um einen Alias zu definieren. Dies ist immer noch sehr abstrakt. Schauen Sie sich den folgenden Anwendungsfall von CASE WHEN an, um dies zu verdeutlichen.
Nutzungsszenarien
1. Bekannte Daten können auf bestimmte Weise gruppiert und analysiert werden.
Zählen Sie anhand der Bevölkerungsdaten dieses Landes die Bevölkerung Asiens und Nordamerikas. Verwenden Sie das folgende SQL:
SELECT CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END as '洲' , SUM(population) as '人口' FROM test GROUP BY CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END;
Die beiden CASE WHEN hier entsprechen einem Feld, aber es ist erwähnenswert, dass der THEN-Wert des zweiten CASE WHEN dort ist Es ist nicht erforderlich, anzugeben, um welchen Kontinent es sich handelt, es wird nur zum Gruppieren von Datensätzen verwendet, sodass der Wert nach THEN nur diese drei Arten von Datensätzen unterscheiden kann. GROUP BY kann auch wie folgt geschrieben werden:
GROUP BY CASE country WHEN '中国' THEN 0 WHEN '印度' THEN 0 WHEN '日本' THEN 0 WHEN '美国' THEN 1 WHEN '加拿大' THEN 1 WHEN '墨西哥' THEN 1 ELSE 2 END;
2. Verwendung eine SQL-Anweisung Vollständige Gruppierungen unter verschiedenen Bedingungen.
hat die folgenden Daten:
Verwenden Sie die Fallfunktion, um nach Land und Geschlecht zu gruppieren. Verwenden Sie die folgende SQL:
SELECT country, SUM( CASE WHEN sex = '1' THEN population ELSE 0 END ), --男性人口 SUM( CASE WHEN sex = '2' THEN population ELSE 0 END ) --女性人口 FROM Table_A GROUP BY country;
, um die folgenden Ergebnisse zu erhalten:
Erklären Sie den ersten CASE WHEN:
CASE WHEN sex = '1' THEN population ELSE 0 END
Wenn das Geschlecht des Datensatzes 1 ist, ist der Wert dieses Feldes der Bevölkerungswert des Datensatzes, andernfalls ist es 0, sodass die männliche Bevölkerung eines Landes berechnet werden kann.
Weitere SQL- und andere Einführung in die Programmierung-Tutorials finden Sie weiterhin auf der chinesischen PHP-Website! !
Das obige ist der detaillierte Inhalt vonVerwendung von Case When in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!