用函数或临时表: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.   


    create table table1(姓名 nvarchar(10),  小班 nvarchar(10),    四致界限 nvarchar(20))
    insert table1 select  '张三',    '1号',    '张三东南西北1号'    
    union all select  '张三',    '2号',    '张三东南西北2号' 
    union all select  '李四',    '1号',    '李四东南西北1号'   
    union all select  '张三',    '3号',    '张三东南西北3号'
    union all select  '李四',    '2号',    '李四东南西北2号'  
    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
    endgo
    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
    select distinct 姓名,[小班]=dbo.test_f(姓名),[四致界限]=dbo.test_f2(姓名) from table1结果:
    李四 1号,2号 李四东南西北1号,李四东南西北2号
    张三 1号,2号,3号 张三东南西北1号,张三东南西北2号,张三东南西北3号