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

Funktionen in TypeScript

Inhaltsverzeichnis 1. Funktionsdefinition 1.1 Fun...

Hallo – Erfahrungsaustausch zum Entwurf von Dialogfeldern

„Was ist los?“ Sofern Sie nicht an bestimmte Arten...

So löschen Sie Dateinamen oder Verzeichnisse mit Sonderzeichen in Linux

Löschen einer Datei anhand ihrer Inode-Nummer Ver...

Lösen Sie das Problem ungültiger UTF8-Einstellungen in MySQL 5.6

Nach der Dekomprimierung der grünen Version von m...

So bringen Sie Ihren Browser dazu, mit JavaScript zu sprechen

Inhaltsverzeichnis 1. Das einfachste Beispiel 2. ...

Implementierung der Codeaufteilung von Webpack3+React16

Projekthintergrund Seit kurzem gibt es ein Projek...

Verstehen Sie alle Aspekte von HTTP-Headern mit Bildern und Text

Was sind HTTP-Header HTTP ist eine Abkürzung für ...

Detaillierte Erklärung der Linux-CPU-Last und CPU-Auslastung

CPU-Last und CPU-Auslastung Beides kann bis zu ei...

js, um einen einfachen Front-End-Paging-Effekt zu erzielen

Einige Projekte haben ein relativ einfaches Gesch...

Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

In diesem Abschnitt lernen wir Listenelemente in ...

Detaillierte Interpretation der Datei /etc/fstab im Linux-System

Vorwort [root@localhost ~]# cat /etc/fstab # # /e...

Mycli ist ein unverzichtbares Tool für MySQL-Befehlszeilen-Enthusiasten

mycli MyCLI ist eine Befehlszeilenschnittstelle f...