我在一个sql表中有重复的记录。行具有相同的ID,但在不同的字段中具有不同的值。我如何将这两行或更多行合并或合并为一行。请帮忙,
答案 0 :(得分:1)
您可以通过指定GROUP BY
子句对某些字段上的行进行分组。
在您的情况下,您会在ID
列上进行分组。对于您在SELECT
子句中未在GROUP BY
子句中指定的列(即ID
以外的列),您必须应用aggregate function(例如SUM
,MAX
,MIN
,...)。
修改 - 基于您的图片的简化示例:
SELECT
MasterID,
CUSTNAME=MIN(CUSTNAME),
ER1=MIN(ER1),
ER1_BU=MIN(ER1_BU)
-- For the other fields, the idea is the same
FROM
your_table
GROUP BY
MasterID
ORDER BY
MasterID;
此示例为每个字段指定特定MasterID
的字段的最小值。你没有真正定义你的意思" merge"。也许你希望结果是一个特定的合并,你必须进一步澄清这个例子是不是"合并"你想要的行。