You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于键值在SQL中合并两行数据?

解决方案

你要实现的是对相同FK的记录,将每个字段合并为**只要有Y就保留Y,否则保留N**的结果,用SQL聚合逻辑就能搞定:

简洁实现方案(利用字符顺序)

SELECT 
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2,
    MAX(Feild3) AS Feild3
FROM 
    你的表名
GROUP BY 
    FK;

原理:字符Y的ASCII码(89)比N(78)大,MAX()聚合函数会自动选取每个字段组内的最大值(也就是Y),刚好匹配需求。

通用实现方案(不依赖字符顺序)

如果字段值的逻辑不基于ASCII顺序,用CASE统计更稳妥:

SELECT 
    FK,
    CASE WHEN SUM(CASE WHEN Field1 = 'Y' THEN 1 ELSE 0 END) > 0 THEN 'Y' ELSE 'N' END AS Field1,
    CASE WHEN SUM(CASE WHEN Field2 = 'Y' THEN 1 ELSE 0 END) > 0 THEN 'Y' ELSE 'N' END AS Field2,
    CASE WHEN SUM(CASE WHEN Feild3 = 'Y' THEN 1 ELSE 0 END) > 0 THEN 'Y' ELSE 'N' END AS Feild3
FROM 
    你的表名
GROUP BY 
    FK;

原理:统计每个字段下Y出现的次数,只要有1次就返回Y,否则返回N,适配更多场景。

内容的提问来源于stack exchange,提问作者teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:16:14