在 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中文网其他相关文章!