请教如何合并记录

lnboy1003 2006-09-27 09:22:20
我现在想把几条记录合并成一条,比如
姓名 科目
张三 语文
张三 数学
我想合并成
张三 语文 数学
...全文
167 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dulei115 2006-09-27
  • 打赏
  • 举报
回复
if object_id('tablename') is not null drop table tablename
select '张三' as 姓名, '语文' as 科目
into tablename
union select '张三', '数学'
union select '张三', '英语'
union select '张三', '物理'
union select '李四', '语文'
union select '李四', '化学'
go
----------------------
if object_id('fn_合并') is not null drop function fn_合并
go
create function fn_合并(
@姓名 varchar(20)
)
returns varchar(300)
as
begin
declare @r varchar(300)
set @r=''
select top 3 @r=@r+' '+科目 from tablename where 姓名=@姓名
if @r<>''
set @r=stuff(@r,1,1,'')
return @r
end
go

--调用
select 姓名,dbo.fn_合并(姓名) as 科目 from tablename
group by 姓名
/*
姓名 科目
---- -----------
李四 化学 语文
张三 数学 物理 英语
*/
----------------------
drop function fn_合并
drop table tablename
dulei115 2006-09-27
  • 打赏
  • 举报
回复
加个top就行了

create function dn_合并(
@姓名 varchar(20)
)
returns varchar(300)
as
begin
declare @r varchar(300)
set @r=''
select top 3 @r=@r+' '+科目 from tablename where 姓名=@姓名
if @r<>''
set @r=stuff(@r,1,1,'')
return @r
end
go

--调用
select 姓名,dbo.fn_合并(姓名) as 科目 from tablename
group by 姓名
xyxfly 2006-09-27
  • 打赏
  • 举报
回复
有ID的话,where id in(select top 3 id ......group by name)
lnboy1003 2006-09-27
  • 打赏
  • 举报
回复
大家帮帮忙啊
lnboy1003 2006-09-27
  • 打赏
  • 举报
回复
现在还有一个这样的问题
就是我想提取出每个人的前3条记录怎么写
分不够可以再加
allright_flash 2006-09-27
  • 打赏
  • 举报
回复
declare @s nvarchar(4000)
set @s=''
select @s = @s + ','
+ quotename(item) + '=sum(case item when ' + quotename(item, '''')+' then score end)'
from(
select distinct item from 表
)b
exec('
select Name ' + @s + '
from 表
group by Name')

rea1gz 2006-09-27
  • 打赏
  • 举报
回复
create function dn_合并(
@姓名 varchar(20)
)
returns varchar(300)
as
begin
declare @r varchar(300)
set @r=''
select @r=@r+' '+科目 from tablename where 姓名=@姓名
if @r<>''
set @r=stuff(@r,1,1,'')
return @r
end
go

--调用
select 姓名,dbo.fn_合并(姓名) as 科目 from tablename
group by 姓名
gahade 2006-09-27
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4998/4998226.xml?temp=.7208826

这个是你想要的
lnboy1003 2006-09-27
  • 打赏
  • 举报
回复
用一条sql语句实现
rea1gz 2006-09-27
  • 打赏
  • 举报
回复
搜索合并函数,论坛很多

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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