create function getstr(@id Nchar(10))
returns Nvarchar(2000)
as 
begin
declare @str Nvarchar(2000)
set @str=N''
select @str=@str+N'('+rtrim(splitChrhead)+N')' from TestTable
where Jionid=@id
return @str
end
GO2,
select jionid,dbo.getstr(joinid) as splitchrheadandnext from testtable group by joinid

解决方案 »

  1.   

    谢谢 不过我是说可不可以  不用自己写的function 而直接用一个select 语句 (语句里面可以包含sqlserver 本身系统方法} 建立视图查出结果~~ 要是用自己写的方法 因为数据多速度很是问题~~!
      

  2.   

    create function getstr(@content int)
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+'('+SplitChrHead+':'+SplitChrNext+')' from TestTable where JionID=@content
    return @str
    end
    go--调用:
    select JionID,dbo.getstr(JionID) f0002  from TestTable group by JionID
      

  3.   

    ~我说的是我们自己写的方法可能算法没有系统自己带的 有类似功能的 方法好
      也就是说系统有没有实现这方面(因为这方面的问题还是比较普遍的)功能的直接解决方案
    pengdali 和 CrazyFor 两位大哥的方法多很类似也很好,不过有更好一点的算法吗 因为我也是这样写但 因为数据在300万级 想到了改数据库结构 但因为 是共享数据库 所以就 只能 程序方法实现 或者是数据库方面的视图方法实现了~