数据库中重复记录的字段合并有关问题,求SQL语句?
数据库中重复记录的字段合并问题,求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
比如数据库中有表如下
姓名 小班 四致界限
张三 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