sql 行转列

happydaily 2011-06-30 02:44:04
create   function   [dbo].[f_hb](@a int) 
returns varchar(100)
as
begin
declare @str varchar(100)
set @str = ''
select @str = @str + cast(jiedian as varchar) +',' from tb_yusuan3 where bianhao = @a and col='a8'
return(@str)
End

这个代码有用了,就是出来的结果有重复的, 就是多行数据想合并到一个里时 1,1,1,3, 想变成1,3,
自己改了select @str = @str +case when charindex(cast(jiedian as varchar),@str)<1 then cast(jiedian as varchar)+',' end from tb_yusuan3 where bianhao = @a and col='a8' 不行.原问题地址http://topic.csdn.net/u/20110629/18/2566b194-7c9b-4890-9ef9-64c3a8c85c06.html
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoAwayZ 2011-06-30
  • 打赏
  • 举报
回复
create   function   [dbo].[f_hb](@a int) 
returns varchar(100)
as
begin
declare @str varchar(100)
set @str = ''
select @str = @str + cast(jiedian as varchar) +',' from tb_yusuan3 where bianhao = @a and col='a8' group by cast(jiedian as varchar)
return(@str)
End
-晴天 2011-06-30
  • 打赏
  • 举报
回复
select ..... ,dbo...... from (
select distinct ..... from tb
)t
-晴天 2011-06-30
  • 打赏
  • 举报
回复
先过滤掉重复再转不就行了嘛.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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