将多行中的文本合并为一行(作为逗号分隔的字符串)
Posted
技术标签:
【中文标题】将多行中的文本合并为一行(作为逗号分隔的字符串)【英文标题】:Combine text from multiple rows into a single row (as a comma separated string) 【发布时间】:2015-06-23 01:04:23 【问题描述】:我正在尝试完成此处已回答的相同事情:SQL combining data from two rows into a single row when they share a common identifier 仅在 MS Access 中。
数据如下所示:
ArticleID CategoryName
1 Alpha
1 Beta
2 Beta
2 Gamma
3 Alpha
3 Delta
我希望结果如下所示:
ArticleID Categories
1 Alpha, Beta
2 Beta, Gamma
3 Alpha, Delta
【问题讨论】:
一般/通用术语是“组连接”。实现这一目标的方式差异很大.. 不知道 Access 如何/是否允许。 您需要使用 VBA,它在 MS Access 前端之外不可用。这是一个例子***.com/questions/92698/combine-rows-concatenate-rows/…,还有其他的。 【参考方案1】:简短的回答是否定的。 MS Access Jet SQL 中不提供在其他 DMBS 中很好地实现这一点的方法。您需要解决这个 Access VBA 编程问题,而不是 SQL 问题。是的,性能会比使用 SQL 解决方案差得多。如果您在谷歌上搜索 VBA 解决方案,那么有些人之前已经尝试过。就个人而言,我会严重质疑您的报告需要多么强烈地要求这一要求。如果您在 SQL 中生成分组报告,您可以在更多选项卡格式下为最终用户列出结果,效果类似:
1
Alpha
Beta
2
Beta
Gamma
3
Alpha
Delta
【讨论】:
同意。删除规范化似乎并不明智。 我理解保持正常化的愿望。就我而言,我从通用 CMS 收到了几个 CSV 文件,我正在将它们导入 WordPress。我没有直接访问数据库的权限,所以我必须使用插件来获取系统中的帖子。以上是关于将多行中的文本合并为一行(作为逗号分隔的字符串)的主要内容,如果未能解决你的问题,请参考以下文章