在 MS Access 查询中将多行合并为一个值
本指南演示了两种基于共享字段在 MS Access 查询中将多行连接成单个值的方法。 这些方法使用自定义函数或内置聚合函数。
方法一:使用自定义函数(GetList)
此方法需要创建 VBA 函数。 然后查询调用此函数来执行串联。
这是查询结构:
<code class="language-sql">SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA], "", ", ") AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
GetList
函数(在 VBA 模块中定义)迭代共享相同 ColumnA
值的行,并使用逗号作为分隔符连接它们相应的 ColumnB
值。 您可以轻松更改此分隔符。
方法二:使用内置列表聚合函数
此方法利用内置的 List
函数来实现更简单、无代码的解决方案。
查询是:
<code class="language-sql">SELECT ColumnA, List(ColumnB) AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
List
函数会自动连接每个唯一 ColumnB
值的 ColumnA
值。 请注意,List
使用的分隔符可能会因您的访问设置而异。
说明性数据和结果
考虑这个示例数据:
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
两种方法都会产生以下结果:
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
自定义分隔符
调整 GetList
函数参数内的分隔符(方法 1)或可能通过区域设置(方法 2)来使用不同的分隔符(例如分号、空格)。
以上是如何在 MS Access 查询中将多行连接成单个值?的详细内容。更多信息请关注PHP中文网其他相关文章!