在SQL 中合併行
在使用資料庫時,您可能會遇到需要將多行資料合併到一筆記錄中的情況。考慮下表包含兩個欄位「Field1」和「Field2」:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | NULL |
3 | NULL | DEF |
目標是擷取下列組合資料:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
要合併這些行,請聚合可以利用函數。聚合函數(例如 MAX)會忽略 NULL 值。透過將 MAX 聚合函數應用於“Field1”和“Field2”,您可以獲得每個群組的最大非 NULL 值,從而有效地將資料合併到單行中。
以下查詢示範了這種方法:
SELECT FK, MAX(Field1) AS Field1, MAX(Field2) AS Field2 FROM table1 GROUP BY FK;
此查詢以「FK」欄位將資料分組,並將 MAX 聚合函數套用至「Field1」和「Field2」。結果是一個表,其中每一行代表原始拆分行的組合資料。
作為範例,請考慮以下測試資料:
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');
對此資料執行合併查詢產生以下結果:
FK | Field1 | Field2 |
---|---|---|
3 | ABC | DEF |
4 | JKL | PQR |
透過利用聚合函數,您可以有效地將多行資料合併到單一組合記錄中。
以上是如何使用聚合函數將多個 SQL 行合併為一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!