分组问题!

loulanlouzhu 2005-06-24 11:16:28
字段A 字段B
a 111
a 222
b 333
b 222
c 666


我想得到
字段c
a:111,222
b:333,222
c:666

感谢帮助!
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2005-06-24
  • 打赏
  • 举报
回复

--建立测试环境
Create Table TEST
(A Varchar(10),
B Int)
--插入数据
Insert TEST Values('a', '111')
Insert TEST Values('a', '222')
Insert TEST Values('b', '333')
Insert TEST Values('b', '222')
Insert TEST Values('c', '666')
GO
--建立函数
Create Function Getb (@A Varchar(10))
Returns Varchar(1000)
As
Begin
Declare @S Varchar(1000)
Set @S=@A+':'
Select @S=@S+Rtrim(B)+',' from TEST Where A=@A Order By B
Return (Left (@S,Len(@S)-1))
End
GO
--测试
Select dbo.Getb(A) As C from TEST Group By A Order By C
--删除测试环境
Drop Table TEST
Drop Function Getb
--结果
/*
C
a:111,222
b:222,333
c:666
*/
jiang130 2005-06-24
  • 打赏
  • 举报
回复
用這個自連接應該可以吧
select identity(int,1,1) as rowid,* into #1 from 表
SELECT a.col1, STR(a.col2) + ',' + STR(b.col2) AS Expr1 FROM #1 a INNER JOIN #1 b ON LTRIM(a.col1) = LTRIM(b.col1) AND a.rowid < b.rowid

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧