如何在sql中重复值时对列进行分组

我连接我的Access数据库到一个Excel文件,并执行一些简单的SQL查询,我想做的事情,我不知道是否有可能。

当值重复时,我想将列中的值分组。

例如,这里是一个简单的查询结果:

ID | Name | Color 1 John Red 1 John Yellow 2 Bill Red 2 Bill Blue 2 Bill Black

我希望以这种方式呈现结果:

ID | Name | Color 1 John Red Yellow 2 Bill Red Blue Black

那可能吗?

欣赏你的答案!

谢谢。

这不能是SQL查询的结果,查询将显示与“颜色”字段相关联的“ID”和“名称”字段中的值(如果存在)。 此外,在查询结果中,没有任何关联蓝色比尔而不是Jhon

如果您的目标是在Excel中显示,您可以使代码通过Cols ID和NAME从下到上运行,并删除与上述单元格值相等的单元格。

在这里,你去…没有不可能的..

 create table tbl_table (Id int, Name varchar(32), Color varchar(16) ) go insert into tbl_table values(1,'John','Red'); insert into tbl_table values(1,'John','Yellow'); insert into tbl_table values(2,'Bill','Red'); insert into tbl_table values(2,'Bill','Blue'); insert into tbl_table values(2,'Bill','Black'); go select a.id,case when a.Id=b.Id and a.rowid<>b.rowid then NULL else a.Name end,a.Color from ( select ROW_NUMBER () OVER (Order by Id asc ) rowid,* from tbl_table ) a left join ( select ROW_NUMBER () OVER (Order by Id asc ) rowid,* from tbl_table ) b on a.rowid-1=b.rowid 

谢谢

 create table tbl_table (Id int, Name varchar(32), Color varchar(16) ) go insert into tbl_table values(1,'John','Red'); insert into tbl_table values(1,'John','Yellow'); insert into tbl_table values(2,'Bill','Red'); insert into tbl_table values(2,'Bill','Blue'); insert into tbl_table values(2,'Bill','Black'); go select a.id,case when a.Id=b.Id and a.rowid<>b.rowid then NULL else a.Name end,a.Color from ( select DCount("[ID]","[tbl_table]","[ID]<=" & [ID]) rowid,* from tbl_table ) a left join ( select DCount("[ID]","[tbl_table]","[ID]<=" & [ID]) rowid,* from tbl_table ) b on a.rowid-1=b.rowid 

尝试这个

Interesting Posts