如何在MSSQL中合并多行
可能的重复:
在 MS SQL Server 2005 中模拟 group_concat MySQL 函数?
SQL Server 中的连接组
我正在尝试编写一个将行组合在一起的 SQL 查询。我需要它按 ID# 将未指定数量的行分组在一起,但将它们的地址连接到一个单元格中。
假设我们有
ID, Address
p1 a1
p1 a2
p1 a3
p2 a4
p2 a5
“我想要获取”,
ID, Address
p1 a1,a2,a3
p2 a4,a5
每个 ID 的地址数量可能会有所不同。有些 ID 有 1 个,其他 ID 有 50 个。
如有任何帮助,我们将不胜感激。提前致谢!
Possible Duplicates:
Simulating group_concat MySQL function in MS SQL Server 2005?
Concat groups in SQL Server
I am trying to write an SQL query that will combine rows together. I need it to group together an unspecified number of rows by ID# but concatenate their addresses let's say into one cell.
Say we have
ID, Address
p1 a1
p1 a2
p1 a3
p2 a4
p2 a5
I want to get
ID, Address
p1 a1,a2,a3
p2 a4,a5
The number of addresses per ID can vary. Some IDs have 1, others can have 50.
Any help would be appreciated. Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Coalesce 函数可用于生成该结果。合并返回集合中的第一个非空值。如果按以下方式使用它,它将按顺序递归返回每个值,直到它为空并将其作为逗号分隔的字符串返回。如果需要,您可以使用任何其他分隔符。
您可以将此代码放入 UDF 中,然后在视图中简单地调用传递密钥的 UDF。
The Coalesce function can be used to produce that result. Coalesce returns the first non null value in a set. If you use it in the following manner it will recursivly return each value in order until it nulls out and return it as a comma delimited string. You can use any other delimiter if you want.
You could put this code into a UDF, and then in a view simply call that UDF passing the key.