Lösungen für ungültige Nullsegmentbeurteilungen und IFNULL()-Fehler in MySql

Lösungen für ungültige Nullsegmentbeurteilungen und IFNULL()-Fehler in MySql

MySql Nullfeldbeurteilung und IFNULL-Fehlerverarbeitung

PS: (Wenn Sie den Vorgang nicht sehen möchten, fügen Sie einfach eine Auswahl außerhalb Ihres SQL hinzu.)

Wählen Sie a, b, c aus der Tabellengruppe nach a, b, c. // Wenn zu diesem Zeitpunkt beurteilt wird, dass a, b, c null ist, spielt das keine Rolle. Wählen Sie IFNULL (a, 0), IFNULL (b, 0), IFNULL (3,0). 
von (wähle a,b,c aus der Tabelle gruppiere nach a,b,c) //Das war's

Schauen wir uns diese sehr einfache Tabelle an.

Bildbeschreibung hier einfügen

Wenn ich SQL-Anweisungen verwende, um nach PID zu gruppieren und Spalten in Zeilen umzuwandeln, werden die Ergebnisse wie folgt angezeigt

Bildbeschreibung hier einfügen

Egal wie ich IFNULL(SID1,0) oder IF( SID1 is null,0,SID1) ausdrücke, das Ergebnis ist immer noch NULL -.-! Ich fühle mich hilflos.

Mein SQL ist so geschrieben. Wenn Sie die MAX-Funktion nicht verwendet haben, können Sie sie ignorieren und sich nur IFNULL ansehen. Es ist offensichtlich, dass ich IFNULL hinzugefügt habe.

WÄHLEN
			PID,
			MAX(FALL WENN SID = 1 DANN WENNNULL(PNUM ,0) ENDE) ALS SID1,
			MAX(FALL WENN SID = 2 DANN WENNNULL(PNUM ,0) ENDE) ALS SID2,
			MAX(FALL WENN SID = 3 DANN WENNNULL(PNUM ,0) ENDE) ALS SID3
		AUS
			(
				WÄHLEN
					PID,
					SUMME(PNUM) PNUM,
					SID
				AUS
					A
				GRUPPELN NACH
					PID
			) Temperatur
		GRUPPELN NACH
			Temperatur PID

Ich habe jedoch festgestellt, dass das Ergebnis immer noch NULL ist, und dann habe ich festgestellt, dass IFNULL () nur feststellen kann, dass das entsprechende Feld in der Tabelle vorhanden und NULL ist, aber in meiner Tabelle gibt es offensichtlich kein solches Feld, sodass es nicht festgestellt werden kann!

Nach der Auswahl wird der NULL-Wert in der Abfrage von MySQL nicht erkannt, da er null und IFNULL() ist

Nachdem so viel gesagt wurde, wie sollen wir das Problem lösen?

Es ist ganz einfach: Wenn Sie keine Uhr haben, besorgen Sie sich einfach eine! (Neue Tabelle erstellen?) Woran denkst du?

Entfernen Sie zunächst das IFNULL in der Abfrage. Es hat keine Auswirkung.

Verwenden Sie dann eine Select-Anweisung, um den Ergebnissatz als Tabelle abzufragen. Dies entspricht dem in der abgefragten Tabelle vorhandenen Feld und dem Wert NULL.

WÄHLEN
	PID,IFNULL(SID1,0) SID1,IFNULL(SID2,0) SID2,IFNULL(SID3,0) SID3
AUS
	(
		WÄHLEN
			PID,
			MAX(FALL, WENN SID = 1, DANN PNUM ENDE) ALS SID1,
			MAX(FALL WENN SID = 2 DANN PNUM ENDE) ALS SID2,
			MAX(FALL WENN SID = 3 DANN PNUM ENDE) ALS SID3
		AUS
			(
				WÄHLEN
					PID,
					SUMME(PNUM) PNUM,
					SID
				AUS
					A
				GRUPPELN NACH
					PID
			) Temperatur
		GRUPPELN NACH
			Temperatur PID
	) temp1

Seht ihr, das Ergebnis ist da, hahahaha~

Bildbeschreibung hier einfügen

Bei der Verwendung von IFNULL() in MySql sind Probleme aufgetreten

Über die ifnull()-Funktion

WENNNULL(a,b) c

Wenn a nicht null ist, dann ist der Wert von c a

Wenn a null ist, dann ist der Wert von c b

Probleme im tatsächlichen Einsatz

WENNNULL(a,b) c

Wenn a nicht null, sondern eine leere Zeichenfolge ist, dann ist der Wert von c eine leere Zeichenfolge.

Das tatsächlich gewünschte Ergebnis ist, dass a eine leere Zeichenfolge oder null ist und der Wert von c b ist.

Lösung

Verwenden Sie stattdessen die Funktion if()

wenn (a = '' oder a ist null, b, a) c

Dies bedeutet: wenn a null oder eine leere Zeichenfolge ist, c=b; andernfalls c=a;

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Lösung für das MySQL IFNULL-Beurteilungsproblem
  • Zusammenfassung der Wissenspunkte im Zusammenhang mit Null (IFNULL, COALESCE und NULLIF) in MySQL
  • Detaillierte Erklärung der Funktionen IFNULL() und COALESCE() zum Ersetzen von Null in MySQL
  • Eine kurze Erläuterung der ifnull()-Funktion ähnlich der nvl()-Funktion in MySQL
  • Detaillierte Erklärung der Verwendung von IFNULL, NULLIF und ISNULL in MySql
  • Eine kurze Erläuterung der Verwendung der ISNULL-Funktion von SQL Server und der IFNULL-Funktion von MySQL
  • Einführung in den Unterschied zwischen IFNULL, IF und CASE in MySQL
  • Anweisungen zur verschachtelten Verwendung von MySQL ifnull

<<:  Mehrere Gründe, HTML nicht zu komprimieren

>>:  Eine detaillierte Einführung in die Verwendung von Blockkommentaren in HTML

Artikel empfehlen

Wie viele gängige Schleifen zur Array-Traversierung in JS kennen Sie?

Vorwort Als grundlegende Datenstruktur spielen Ar...

Was sind die Unterschiede zwischen var let const in JavaScript

Inhaltsverzeichnis 1. Wiederholte Erklärung 1,1 v...

Drei Vererbungsmethoden in JavaScript

erben 1. Was ist Vererbung? Vererbung: Zunächst e...

Wer ist ein User Experience Designer?

Beängstigend, nicht wahr? Übersetzung im Bild: (v...

Der HTML 5-Entwurf wurde kein formeller Standard

<br />Gestern habe ich beim W3C gesehen, das...

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

Einige Tipps zum Schreiben leistungsstarker HTML-Anwendungen

Wie können Sie die Leistung einer Webseite verbes...

Designtheorie: Die Grundlagen der Schriftgestaltung

<br />Worte sind das unvermeidliche Produkt ...

Vergleichende Analyse von IN und Exists in MySQL-Anweisungen

Hintergrund Als ich kürzlich SQL-Anweisungen schr...

Detaillierter Installationsprozess des NodeJS-Verwaltungstools NVM

keine Ahnung nvm ist für die Verwaltung mehrerer ...