Detaillierte Erläuterung des Fehlerproblems der Case-When-Anweisung

Detaillierte Erläuterung des Fehlerproblems der Case-When-Anweisung

Vorwort

In der MySQL-Datenbank verwenden wir manchmal Beurteilungsoperationen wie „if else“. Wie kann man also mit dieser Anforderung in MySQL umgehen?

Syntax der MySQL-Beurteilungsoperation:

Fall ..when-Anweisung

Aber bei der Verwendung bin ich kürzlich auf ein Problem gestoßen. Ich werde im Folgenden nicht viel dazu sagen. Schauen wir uns die ausführliche Einführung an.

Beschreiben Sie das Problem direkt. Ich habe eine Tabelle id_card_message, die ID-Nummern speichert. Die Tabellenstruktur und die Daten sind wie folgt (MySQL 5.7.14):

mysql> wähle * aus ID_Card_Message;

+------+--------------------+

| ID | Ausweisnummer |

+------+--------------------+

| 1 | 342513199411222515 |

| 1 | 342624197812023498 |

| 1 | 310908198910123348 |

+------+--------------------+

Nun möchte ich mir die Geschlechtsinformation anhand der vorletzten Ziffer der Ausweisnummer anzeigen lassen. Ich führe folgende SQL-Anweisung aus und es wird der entsprechende Fehler gemeldet:

mysql> select case substr(Ausweisnummer,17,1)

-> wenn (1,3,5,7,9), dann '男'

-> wenn (0,2,4,6,8), dann '女' und 'Geschlecht',

-> Ausweisnummer

-> von ID-Kartennachricht;

FEHLER 1241 (21000): Operand sollte 1 Spalte(n) enthalten

Der Fehler lautet: „Operand sollte eine Spalte enthalten.“ Der einzige Verdacht besteht hier darin, dass in den Klammern nach der When-Klausel zu viele Werte stehen. Kann also in dieser When-Struktur nur ein Wert nach der When-Klausel stehen? Ich habe die Case-Syntax in Abschnitt 13.6.5.1 der folgenden offiziellen Dokumente überprüft und es scheint, dass es dafür keine Erklärung gibt.

Selbstverständlich können Sie durch eine Änderung des Anweisungsformats dennoch an die benötigten Daten gelangen. wie folgt:

mysql> auswählen

-> Fall

-> wenn substr(id_card_no,17,1) in (1,3,5,7,9), dann '男'

-> wenn substr(id_card_no,17,1) in (0,2,4,6,8) dann '女' endet mit 'sex',

-> Ausweisnummer

-> von ID-Kartennachricht;

+------+--------------------+

| Geschlecht | Ausweisnummer |

+------+--------------------+

| Männlich | 342623199610222515 |

| Männlich | 342624197812023498 |

| Weiblich | 310908198910123348 |

+------+--------------------+

Die aktuelle Idee ist, dass im Format „CASE-Wert, WHEN-Vergleichswert“ der Vergleichswert nach der When-Klausel nur ein einzelner Wert sein kann und nicht mit mehreren Werten verbunden werden kann. Der obige Vergleichswert hat beispielsweise die Werte 1, 3, 5, 7 und 9. In diesem Fall kann nur das obige SQL verwendet werden.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Anweisungen zur Verwendung der MySQL CASE WHEN-Anweisung
  • Tipps zur Verwendung von Case When Then in SQL-Aggregatfunktionen
  • SQL lernen: Verwendung von CASE WHEN THEN ELSE END
  • Mehrere Beispiele für die Verwendung der CASE WHEN-Anweisung von MySQL
  • So verwenden Sie die Case-When-Anweisung in MySQL, um eine Abfrage mit mehreren Bedingungen zu implementieren
  • So verwenden Sie die Case-Why-Syntax in SQL
  • Kurze Analyse zweier Methoden zur Zeilen- und Spaltenkonvertierung von SQL-Anweisungen: case...when und Anwendung der Pivot-Funktion
  • Summe(Fall wenn dann)(um die Anzahl der männlichen und weiblichen Studenten zu ermitteln)
  • MySQL-Fall beim Gruppieren nach Beispiel
  • Beispiel für die Verwendung von CASE WHEN beim Sortieren in MySQL

<<:  Ideen und Codes zur Implementierung der Vuex-Datenpersistenz

>>:  Ein Bugfix für Tomcats automatisches Herunterfahren

Artikel empfehlen

Sind die Wertebereiche von int(3) und int(10) in MySQL gleich?

Inhaltsverzeichnis Frage: Antwort: Wirklichkeit: ...

JS-Code zum Erzielen eines Seitenwechseleffekts

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung, wie NGINX PV, UV und unabhängige IP der Website zählt

Nginx: PV, UV, unabhängige IP Jeder, der Websites...

Der Unterschied zwischen div und span in HTML (Gemeinsamkeiten und Unterschiede)

Gemeinsamkeiten: Das DIV-Tag und das SPAN-Tag beh...

MySQL 5.7.20 Zip-Installations-Tutorial

MySQL 5.7.20 Zip-Installation, der spezifische In...

Beispielanweisungen für Indizes und Einschränkungen in MySQL

Fremdschlüssel Abfrage, bei welchen Tabellen der ...

Lösung für die Docker-Befehlsausnahme „Zugriff verweigert“

Installieren Sie Docker im Linux-System neu und g...

MySQL: Praktische Erfahrung mit der Verwendung der Insert-Anweisung

Inhaltsverzeichnis 1. Mehrere Syntaxen von Insert...

Was sind die Verwendungszwecke von Limits in MySQL (empfohlen)

SELECT * FROM Tabellenname Limit m,n; SELECT * FR...