首页 > 数据库 > mysql教程 > SQL 聚合函数如何将具有 NULL 值的多行合并为一行?

SQL 聚合函数如何将具有 NULL 值的多行合并为一行?

Barbara Streisand
发布: 2024-12-28 06:12:14
原创
537 人浏览过

How Can SQL Aggregate Functions Merge Multiple Rows with NULL Values into a Single Row?

在 SQL 中选择数据来合并多行

考虑一个包含数据的表,如下所示:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

目标是执行将这些行合并为一行的 SELECT 操作:

FK Field1 Field2
3 ABC DEF

聚合函数解决方案

可以使用聚合函数来忽略 NULL 值并组合多个匹配行中的非 NULL 值。下面的查询演示了这种方法:

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;
登录后复制

在此查询中,我们使用 MAX 聚合函数从按 FK 分组的行中选择 Field1 和 Field2 的最大值。由于聚合函数会忽略 NULL 值,因此这可确保仅组合非 NULL 值。

测试解决方案

使用提供的测试数据:

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 聚合函数如何将具有 NULL 值的多行合并为一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板