Verstehen Sie den CASE-Ausdruck in GaussDB SQL

Dieser Artikel wurde von der Huawei Cloud Community „ GaussDB SQL Basic Syntax Beispiel-CASE-Ausdruck “ von Gauss Squirrel Club Assistant 2 geteilt.

I. Einleitung

SQL ist eine Standard-Computersprache, die für den Zugriff auf und die Bearbeitung von Datenbanken verwendet wird. GaussDB unterstützt den SQL-Standard (Hauptfunktionen von SQL2, SQL3 und SQL4 werden standardmäßig unterstützt).

Die Einführung dieser Reihe basiert auf dem Online-Dokument „Cloud Database GaussDB – SQL Reference“.

2. Einführung in den CASE-Ausdruck

In GaussDB SQL ist der CASE-Ausdruck (CASE Expression) ein sehr leistungsfähiges und häufig verwendetes Tool, mit dem bedingungsbasierte Vorgänge in SQL ausgeführt werden können. CASE-Ausdrücke ähneln IF-THEN-ELSE-Anweisungen, sind jedoch flexibler zu verwenden und einfacher zu lesen und zu schreiben.

Der CASE-Ausdruck enthält zwei Formen, eine ist die einfache Form und die andere ist die Suchform. Die Schreibweise, Grammatik und Verwendung dieser beiden Formen wird im Folgenden vorgestellt.

3. Einfacher CASE-Ausdruck in der GaussDB-Datenbank

1. Grundkonzepte

Ein einfacher CASE-Ausdruck führt einen gleichheitsbasierten Vergleich für einen bestimmten Ausdruck durch und führt eine Operation aus, wenn der Ausdruck einem bestimmten Wert entspricht. Das heißt, springen Sie zum entsprechenden result_expression basierend auf dem übereinstimmenden Ergebnis von input_expression und when_expression.

2. Grundlegende Grammatik

CASE-Eingabeausdruck

WANN when_expression THEN result_expression

[...N]

[ELSE else_result_expression]

ENDE;

veranschaulichen :

Unter diesen stellt input_expression den Ausdruck dar, der verglichen werden muss, when_expression usw. stellt den Wert dar, der verglichen werden muss, result_expression usw. stellt das Ergebnis dar, wenn alle Werte gleich sind, else_result_expression stellt das Standardergebnis dar, wenn input_expression nicht gleich ist irgendein Wert.

Tipp :

CASE: Die einfache CASE-Funktion unterstützt Unterabfragen. Beachten Sie jedoch, dass input_expression und when_expression übereinstimmen können. Wenn außerdem kein input_expression = when_expression vorhanden ist, der TRUE ergibt, gibt DLI bei Angabe der ELSE-Klausel else_result_expression zurück. Wenn die ELSE-Klausel nicht angegeben ist, wird ein NULL-Wert zurückgegeben.

3. Beispiel

Unter der Annahme, dass die Mitarbeiterebene auf der Grundlage eines festen Gehalts definiert ist, kann sie gemäß dem folgenden SQL ausgeführt werden:

Namen auswählen

,Gehalt

,CASE-Gehalt

     WENN 15000, DANN „Junior“

         WANN 20000 DANN „Mittelstufe“

            WENN 25000, DANN „Premium“

            WENN 30000, DANN „Premium“

            WENN 35000, DANN „Premium“

            Sonst NULL

        END AS-Ebene

VON der Firma

ORDNUNG NACH Gehalt;

Parsen von SQL- Anweisungen :

Der Test verwendet eine in der GaussDB-Datenbank erstellte Firmentabelle.

Dieses SQL wählt den Namen des Mitarbeiters (Name), das Gehalt (Salary) und ein nach der Gehaltsstufe (Level) klassifiziertes Feld aus der Tabelle „company“ aus. Und verwenden Sie die Anweisung „ORDER BY Salary“, um die Ergebnisse vom niedrigen zum hohen Gehalt zu sortieren.

So funktionieren einfache CASE-Ausdrücke:

Wenn der Wert des Feldes „Gehalt“ gleich 15000 ist, dann ist der Wert des Feldes „Ebene“ „Junior“.

Wenn der Wert des Feldes „Gehalt“ gleich 20000 ist, dann ist der Wert des Feldes „Ebene“ „Mittel“.

Wenn der Wert des Feldes „Gehalt“ gleich 25.000 oder 30.000 oder 35.000 ist, dann ist der Wert des Feldes „Ebene“ „vorgerückt“.

Wenn der Wert des Felds „Gehalt“ keinem der oben genannten Werte entspricht, ist der Wert des Felds „Ebene“ NULL.

4. Suchen Sie nach dem CASE-Ausdruck in der GaussDB-Datenbank

1. Grundkonzepte

Die Suche nach einem CASE-Ausdruck bedeutet, einen auf Ungleichheit basierenden Vergleich für einen bestimmten Ausdruck durchzuführen und die entsprechende Operation auszuführen, wenn der Ausdruck die gegebene Bedingung erfüllt. Das heißt, der boolesche_Ausdruck jeder WHEN-Klausel wird in der angegebenen Reihenfolge ausgewertet. Gibt den result_expression des ersten booleschen_Ausdrucks zurück, der TRUE ergibt.

2. Grundlegende Grammatik

CASE WHEN boolean_expression THEN result_expression

[...N]

[ELSE else_result_expression]

ENDE;

veranschaulichen:

Unter diesen stellen boolean_expression usw. die Bedingungen dar, die verglichen werden müssen, result_expression usw. stellen die Operationsergebnisse dar, wenn die entsprechenden Bedingungen erfüllt sind, und else_result_expression stellt das Standardergebnis dar, wenn der Ausdruck keine Bedingungen erfüllt.

Tipp :

boolean_expression: kann Unterabfragen enthalten, aber der Rückgabewert des gesamten boolean_expression-Ausdrucks kann nur vom Typ Boolean sein.

Wenn es keinen booleschen_Ausdruck gibt, der TRUE ergibt, gibt DLI else_result_expression zurück, wenn die ELSE-Klausel angegeben ist; wenn die ELSE-Klausel nicht angegeben ist, wird ein NULL-Wert zurückgegeben.

3. Beispiel

Unter der Annahme, dass die Mitarbeiterebene anhand der Gehaltsspanne definiert wird, kann sie gemäß dem folgenden SQL ausgeführt werden:

Namen auswählen

,Gehalt

,CASE WHEN Gehalt < 15000 THEN '初级'

         WENN das Gehalt ZWISCHEN 15.000 UND 25.000 DANN „中级“ beträgt

            WENN Gehalt >25000, DANN „Senior“

            Sonst NULL

        END AS-Ebene

VON der Firma

ORDNUNG NACH Gehalt;

Parsen von SQL- Anweisungen :

Diese SQL ist die gleiche wie oben. Sie wählt den Namen (Name) und das Gehalt (Salary) des Mitarbeiters aus und klassifiziert ihn entsprechend seiner Gehaltsstufe (Level) aus der Tabelle „Unternehmen“.

So funktionieren Such-CASE-Ausdrücke:

Wenn das Gehalt (Gehalt) weniger als 15.000 beträgt, wird die Gehaltsstufe als „Junior“ gekennzeichnet.

Wenn das Gehalt zwischen 15.000 und 25.000 (einschließlich) liegt, wird die Gehaltsstufe als „mittel“ gekennzeichnet.

Bei einem Gehalt über 25.000 wird die Gehaltsstufe als „Senior“ gekennzeichnet.

Wenn keine der oben genannten Bedingungen erfüllt ist, wird die Gehaltsstufe mit NULL gekennzeichnet.

Zusammenfassend besteht der Hauptzweck dieser SQL-Anweisung darin, Mitarbeiterinformationen zu erhalten, sie nach ihrem Gehaltsniveau zu klassifizieren und sie nach ihrem Gehaltsniveau zu sortieren.

5. Zusammenfassung

Der CASE-Ausdruck in GaussDB ist ein sehr nützliches Werkzeug, mit dem bedingungsbasierte Operationen in SQL ausgeführt, bedingte Beurteilungen und Verzweigungslogik implementiert und Datenbankabfragen und -operationen weiter optimiert werden können. Beim Schreiben von SQL-Code können Sie je nach spezifischen Geschäftsanforderungen flexibel zwischen einer einfachen Form oder einer Suchform wählen, was die Codierungseffizienz und die Lesbarkeit des Codes erheblich verbessern kann.

Angehängt : Häufige Verwendungsszenarien , z. B. sekundäre Definitions - Tags, Sättigungsstatistiken, Berechnungsindikatoren , Datenformatkonvertierung usw.

Klicken Sie hier, um zu folgen und so schnell wie möglich mehr über die neuen Technologien von Huawei Cloud zu erfahren~

 

RustDesk hat den inländischen Dienst Taobao (taobao.com) aufgrund von grassierendem Betrug eingestellt, die Arbeit zur Optimierung der Webversion wurde wieder aufgenommen, Apple veröffentlichte den M4-Chip, High-School-Schüler erstellten im Rahmen einer Coming-of-Age-Zeremonie ihre eigene Open-Source-Programmiersprache – Netizens kommentierten: Verlassen auf Die Verteidigung, Yunfeng sei von Alibaba zurückgetreten und plane, in Zukunft das Ziel für unabhängige Spieleprogrammierer Visual Studio Code 1.89 zu produzieren, wurde von Huawei offiziell bekannt gegeben. Yu Chengdongs Jobanpassung wurde an die „FFmpeg-Säule der Schande“ genagelt „Vor 15 Jahren, aber heute muss er sich bei uns bedanken – Tencent QQ Video rächt seine bisherige Schande?“ Die Open-Source-Spiegelstation der Huazhong University of Science and Technology ist offiziell für den externen Netzwerkzugriff geöffnet
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/4526289/blog/11106074
Empfohlen
Rangfolge