日期:2014-05-18  浏览次数:20536 次

数据库中重复记录的字段合并问题,求SQL语句???
比如数据库中有表如下
  姓名       小班         四致界限  
  张三         1号         张三东南西北1号        
  张三         2号         张三东南西北2号  
  李四         1号         李四东南西北1号      
  张三         3号         张三东南西北3号
  李四         2号         李四东南西北2号        

处理后的记录
  姓名                                 小班                                             四致界限
  张三                           1号2号3号     张三东南西北1号张三东南西北2号张三东南西北3号
  李四                             1号2号                 李四东南西北1号李四东南西北2号  

上面的例子只是特例,可能张三有8号或者更多,能否给个这样的查询语句或者其他实现这样的功能?分少还可以加加   ,谢谢!

------解决方案--------------------
用函数或临时表:

create function test_f2(@Name nvarchar(50))
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ', ', ' ')+小班 from table1 where 姓名=@Name
return @s
end
go
create function test_f(@Name nvarchar(50))
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ', ', ' ')+四致界限 from table1 where 姓名=@Name
return @s
end
select distinct 姓名,小班=dbo.test_f(姓名),四致界限=dbo.test_f2(姓名) from table1