SQL Group by 和 concat

发布于 2024-10-15 12:29:57 字数 454 浏览 3 评论 0原文

你好 任何人都可以帮我解决以下问题。我需要编写一个 MS SQL 语句来实现以下目标:

Table1 有 2 列:Column1Column2

table1 中的数据看起来像

Column1   Column2
1         a
1         b
1         c
2         w
2         e
3         x

我需要我的 Sql 语句输出如下

Column1   Column2
1         a, b, c
2         w, e
3         x

所示换句话说,我需要按第 1 列进行分组,并将第 2 列值用逗号分隔连接起来。请注意,这需要能够在 SQL Server 2000 及更高版本上运行

Hi
Can anybody help me with the following. I need to write a MS SQL statment to achive the following:

Table1 has 2 columns: Column1 and Column2

Data in table1 looks like

Column1   Column2
1         a
1         b
1         c
2         w
2         e
3         x

I need my Sql statment to output as following

Column1   Column2
1         a, b, c
2         w, e
3         x

So in other words I need to group by column1 and have the column2 values concatenate with comma seperated. Please note this will need to be able to run on SQL Server 2000 and above

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅唱ヾ落雨殇 2024-10-22 12:29:57

您可以创建一个函数来连接值

create function dbo.concatTable1(@column1 int) returns varchar(8000)
as
begin
declare @output varchar(8000)
select @output = coalesce(@output + ', ', '') + column2
from table1
where column1 = @column1 and column2 > ''
return @output
end
GO

所以假设您有这个表

create table table1 (column1 int, column2 varchar(10))
insert table1 select 1, 'a'
insert table1 select 1, 'b'
insert table1 select 1, 'c'
insert table1 select 2, 'w'
insert table1 select 2, 'e'
insert table1 select 3, 'x'
GO

您可以像这样使用它

select column1, dbo.concatTable1(column1) column2
from table1
group by column1

You can create a function to concat the values

create function dbo.concatTable1(@column1 int) returns varchar(8000)
as
begin
declare @output varchar(8000)
select @output = coalesce(@output + ', ', '') + column2
from table1
where column1 = @column1 and column2 > ''
return @output
end
GO

So assuming you had this table

create table table1 (column1 int, column2 varchar(10))
insert table1 select 1, 'a'
insert table1 select 1, 'b'
insert table1 select 1, 'c'
insert table1 select 2, 'w'
insert table1 select 2, 'e'
insert table1 select 3, 'x'
GO

You use it like this

select column1, dbo.concatTable1(column1) column2
from table1
group by column1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文