首页 >数据库 >mysql教程 >如何使用聚合函数在 SQL 中合并具有 NULL 值的行?

如何使用聚合函数在 SQL 中合并具有 NULL 值的行?

Barbara Streisand
Barbara Streisand原创
2024-12-26 10:17:10906浏览

How to Combine Rows with NULL Values in SQL Using Aggregate Functions?

如何在 SQL 中合并行

问题:

想象一个场景,您有一个包含 FK 列的数据库表、字段 1 和字段 2。该表包含如下数据:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

您的目标是执行将这两行合并为一行的查询,产生以下输出:

FK Field1 Field2
3 ABC DEF

答案:

可以利用诸如 MAX 之类的聚合函数来实现这种数据合并。它们本质上会忽略 SQL Server、Oracle 和 Jet/Access 等平台上的 NULL 值。以下是使用 MAX 函数的示例查询:

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;

在此查询中,我们按 FK 列对行进行分组,并使用 MAX 函数检索其他每一列(Field1 和 Field1)的最大值。字段2)。由于忽略 NULL 值,因此在合并行中返回非 NULL 值(ABC 和 DEF)。

以下是测试数据的示例:

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn