该回答引用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 明细表字段) 可以指定拼接的顺序。
参考GPT和自己的思路:
可以使用 SQL Server 中的 GROUP BY 和字符串聚合函数来实现将多条数据合并为一条并拼接特定字段的值。以下是示例代码:
SELECT t1.[fullname],
STRING_AGG(t2.[value], ',') AS [values]
FROM table1 t1
JOIN table2 t2 ON t1.[id] = t2.[parentId]
WHERE t1.[fullname] = '最牛的商品'
GROUP BY t1.[fullname]
上述代码中,通过 INNER JOIN 将主表 table1 和明细表 table2 进行联表查询,并使用 WHERE 子句过滤出 fullname 为“最牛的商品”的记录。接着使用 GROUP BY 子句对 fullname 进行分组,并使用字符串聚合函数 STRING_AGG 将 t2 表中的 value 字段按逗号拼接成一个字符串,并使用 AS 关键字指定新列名为 values。这样就可以将多条数据合并为一条并拼接了特定字段的值。
所谓的多条合并,其实就是分组查询,了解下 group by