SQL server联表查询之后主表一条数据可能对应多条明细,如图我想要把”最牛的商品“那三条数据变成一条,前面fullname不同的三条数据值拼接起来(pcs,件,瓶)。就是多条数据合并,特点字段值拼接处理能否实现?
补充一下,多条数据不一定是三条,可能四条五条,有多少条就要拼接多少个字段,然后还有其他字段也要显示,分组之后,其他字段如何显示?
该回答引用chatGpt
可以使用 SQL 的 GROUP BY 和 STRING_AGG 函数实现。
例如:
SELECT 主表字段1, 主表字段2, STRING_AGG(明细表字段, ',') WITHIN GROUP (ORDER BY 明细表字段)
FROM 主表
LEFT JOIN 明细表
ON 主表.主表字段 = 明细表.主表字段
GROUP BY 主表字段1, 主表字段2
STRING_AGG 函数可以将分组后的数据拼接起来,WITHIN GROUP (ORDER BY 明细表字段) 可以指定拼接的顺序。