Betrachten Sie eine Tabelle mit Daten wie unten gezeigt:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | NULL |
3 | NULL | DEF |
Das Ziel besteht darin, eine durchzuführen SELECT-Operation, um diese Zeilen zu einer einzigen Zeile zu kombinieren:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
Aggregatfunktionen können verwendet werden, um NULL-Werte zu ignorieren und die Nicht-NULL-Werte aus mehreren übereinstimmenden Zeilen zu kombinieren. Hier ist eine Abfrage, die diesen Ansatz veranschaulicht:
SELECT FK, MAX(Field1) AS Field1, MAX(Field2) AS Field2 FROM table1 GROUP BY FK;
In dieser Abfrage verwenden wir die Aggregatfunktion MAX, um den Maximalwert für Feld1 und Feld2 aus den nach FK gruppierten Zeilen auszuwählen. Da NULL-Werte von Aggregatfunktionen ignoriert werden, wird sichergestellt, dass nur Nicht-NULL-Werte kombiniert werden.
Verwendung der bereitgestellten 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');
Die Abfrage liefert die gewünschten Ergebnisse:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
4 | JKL | PQR |
Das obige ist der detaillierte Inhalt vonWie können SQL-Aggregatfunktionen mehrere Zeilen mit NULL-Werten in einer einzigen Zeile zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!