create function get_str(@str int)
returns varchar(255)
as
begin
declare @a varchar(255)
declare @result varchar(255)set @a=''
select @a=@a+','+col4 from table2 where a=@str
set @a=right(@a,len(@a)-1)
return(@a)
endselect col1,col2,col4 from table1 a join (select col3,dbo.get_str(col3) col4 from  table2) b on a.col1=b.col3

解决方案 »

  1.   

    create table table1(col1 int,col2 varchar(20))
    insert into  table1 values(1,'aaa')
    insert into  table1 values(2,'bbb')
    create table table2(col3 int,col4 varchar(20))
    insert into  table2 values(1,'fff')
    insert into  table2 values(1,'ggg')
    insert into  table2 values(1,'yyy') 
    insert into  table2 values(2,'hhh')
    insert into  table2 values(2,'kkk')
    go
    create function get_str(@str int)
    returns varchar(8000)
    as
    begin
    declare @a varchar(8000)
    set @a=''
    select @a=@a+','+col4 from table2 where col3=@str
    set @a=right(@a,len(@a)-1)
    return(@a)
    end
    go
    select col1,col2,dbo.get_str(col1) as col4 from table1