遇麻烦:SQL数据合并问题
现有以下案例:create table table1(姓名 nvarchar(10), 小班 nvarchar(10), 四致界限 nvarchar(20),大班 nvarchar(20) )
insert table1 select '张三 ','1号 ','张三东南西北1号 ','ss'
union all select '张三 ','2号 ','张三东南西北2号 ',''
union all select '李四 ','1号 ','李四东南西北1号 ','ss'
union all select '张三 ','3号 ','张三东南西北3号 ',''
union all select '李四 ','2号 ','李四东南西北2号 ',''
union all select '李四','3号','李四东南西北2号 ','ss '
union all select '张三','3号','李四东南西北2号 ','ss'
create function test_f(@Name nvarchar(10))
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ' ', ' ')+小班 from table1 where 姓名=@Name
return @s
end
go
create function test_f2(@Name nvarchar(10))
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ' ', ' ')+四致界限 from table1 where 姓名=@Name
return @s
end
go
drop function test_f2
create function test_f3(@Name nvarchar(10))
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ' ', ' ')+ 大班 from table1 where 姓名=@Name
return @s
end
go
select distinct 姓名,[小班]=dbo.test_f(姓名),[四致界限]=dbo.test_f2(姓名),[大班]= dbo.test_f3(姓名) from table1
select * from table1
查询出来结果为:
[local]1[/local]
可是发现相同的列的内容也会一起加上去,我想把完全重复的列的内容只显示一条,如果为NUll的则把不为空的数据填进NUll的列里!
高手请帮帮忙啊!比较急。。