日期:2014-05-18  浏览次数:20529 次

~~~~~~~~~~~~~~~這樣的結果,sql語句怎樣寫?
表裡有這樣一些記錄:
10點     10:50的火車  
11點     null      
12點     null          
13點     null          
14點     null          
15點     null          
16點     記得打電話提醒下火車  
16點     test  
16點     tt  
16點     笑話  
17點     sdfdsf  

請部怎樣顯示成:
10點     10:50的火車  
11點     null      
12點     null          
13點     null          
14點     null          
15點     null          
16點     1,記得打電話提醒下火車;2,test;3,tt;4,笑話;  
17點     sdfdsf  


謝謝!

------解决方案--------------------
drop table tbtest
go
create table tbtest(name varchar(10),value varchar(20))
insert into tbtest
select '10點 ', '10:50的火車 '
union all select '11點 ',null
union all select '12點 ',null
union all select '13點 ',null
union all select '14點 ',null
union all select '15點 ',null
union all select '16點 ', '記得打電話提醒下火車 '
union all select '16點 ', 'test '
union all select '16點 ', 'tt '
union all select '16點 ', '笑話 '
union all select '17點 ', 'sdfdsf '

alter function dbo.uf_getstr(@name varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str= ' '
select @str=@str+isnull(value, ' ')+ '; ' from tbtest where name=@name
select @str=left(@str,len(@str)-1)
return @str
end

select distinct name,dbo.uf_getstr(name) value from tbtest
/*
name value
---------- ------------------------------------
10點 10:50的火車
11點
12點
13點
14點
15點
16點 記得打電話提醒下火車;test;tt;笑話
17點 sdfdsf

(所影响的行数为 8 行)
*/