Ms Access查询:通过查询连接行

假设我在Ms Access中有带有以下信息的表:


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

我想通过查询来实现。有人可以帮助我实现这一目标吗?


UYOU
浏览 551回答 3
3回答

森林海

您需要一个函数来进行串联。Microsoft Access压缩表中的多行使用数据的示例:Select T.ColumnA  , GetList("Select ColumnB From Table1 As T1 Where T1.ColumnA = " & [T].[ColumnA],"",", ") AS ColumnBItemsFrom Table1 AS TGroup By T.ColumnA;

largeQ

这是一个出色的链接:在SQL中如何通过调用函数来做到这一点。说明非常清楚,并且为您编写了该功能,因此您只需复制,粘贴和粘贴即可。即使是不了解VB的人也可以轻松实现它: 连接相关记录中的值

扬帆大鱼

这可能很难获得。如果必须在查询而不是函数中执行此操作,则将遇到的问题是可以连接成一列的行数限制。到目前为止,我发现实现此目标的唯一方法是通过iif语句。SELECT test1.ColumnA AS ColumnA, First([test1].[ColumnB]) & IIf(Count([test1].[ColumnB])>1,"," & Last([test1].[ColumnB])) AS ColumnBFROM test1GROUP BY test1.ColumnA;返回:ColumnA  ColumnB 1      abc,xyz 2      efg,hij 3      asd这将只返回第一个和最后一个,但是我敢肯定,您只需做一点点工作就可以计算出Choose函数,但是就像我说的那样,您必须为要添加的每个其他项添加更多的iif语句,因此局限性。
打开App,查看更多内容
随时随地看视频慕课网APP