首页 > 数据库 > mysql教程 > 如何根据公共键合并SQL中带有NULL值的行?

如何根据公共键合并SQL中带有NULL值的行?

Mary-Kate Olsen
发布: 2025-01-01 11:01:11
原创
237 人浏览过

How Can I Merge Rows with NULL Values in SQL Based on a Common Key?

如何在 SQL 中合并行

问题:

考虑一个包含以下数据的表:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

目标是从表中检索合并行,其中 Field1 和Field2 值针对相同的 FK 进行组合:

FK Field1 Field2
3 ABC DEF

解决方案:

要实现此结果,可以使用聚合函数。聚合函数忽略 NULL 值,允许合并非 NULL 值。例如,可以使用以下查询(在 SQL Server Express 2008 R2 中测试):

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

MAX 函数用于从按 FK 分组的行中选择一个值。可以使用检索分组行中单个值的任何聚合函数。

示例数据和结果:

考虑以下示例数据:

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
登录后复制

因此,行被有效合并,合并 Field1 和 Field2 列中相同 FK 的非 NULL 值。

以上是如何根据公共键合并SQL中带有NULL值的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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