Frage:
Stellen Sie sich ein Szenario vor, in dem Sie eine Datenbanktabelle mit den Spalten FK haben , Feld1 und Feld2. Die Tabelle besteht aus Daten wie folgt:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | NULL |
3 | NULL | DEF |
Sie möchten eine Abfrage durchführen, die diese beiden Zeilen zu einer kombiniert und die folgende Ausgabe erzeugt:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
Antwort:
Aggregatfunktionen wie MAX können verwendet werden, um diese Datenzusammenführung zu erreichen. Sie ignorieren von Natur aus NULL-Werte auf Plattformen wie SQL Server, Oracle und Jet/Access. Hier ist eine Beispielabfrage, die die MAX-Funktion verwendet:
SELECT FK, MAX(Field1) AS Field1, MAX(Field2) AS Field2 FROM table1 GROUP BY FK;
In dieser Abfrage gruppieren wir die Zeilen nach der FK-Spalte und verwenden die MAX-Funktion, um den Maximalwert für jede der anderen Spalten abzurufen (Feld1 und Feld2). Da NULL-Werte ignoriert werden, werden die Nicht-NULL-Werte (ABC und DEF) in der zusammengeführten Zeile zurückgegeben.
Hier ist ein Beispiel mit Testdaten:
CREATE TABLE table1 (FK int, Field1 varchar(10), Field2 varchar(10)); INSERT INTO table1 VALUES (3, 'ABC', NULL); INSERT INTO table1 VALUES (3, NULL, 'DEF'); INSERT INTO table1 VALUES (4, 'GHI', NULL); INSERT INTO table1 VALUES (4, 'JKL', 'MNO'); INSERT INTO table1 VALUES (4, NULL, 'PQR');
Wenn die Abfrage ausgeführt wird Auf Grundlage dieser Testdaten ergibt sich die folgende Ausgabe:
FK Field1 Field2 -- ------ ------ 3 ABC DEF 4 JKL PQR
Das obige ist der detaillierte Inhalt vonWie kombiniere ich Zeilen mit NULL-Werten in SQL mithilfe von Aggregatfunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!