日期:2014-05-19  浏览次数:20379 次

一个高手才能做出的题!!!高手进!!1
表1                                                                 结果表
id               name                                         id                           name
1                   A                                               1                           ABC
1                   B                                               2                           H
2                   H                                               3                           CD
3                   CD
1                   C

请问这题怎么实现啊。让ID为1的后面的name全部相加变成ABC
怎么做啊。
急啊!!!!

------解决方案--------------------
create table #t
(
[id ] int,
[va] varchar(1)
)

insert into #t
select 1, 'a '
union
select 1, 'b '
union
select 1, 'c '


declare @vv varchar(1000)
set @vv= ' '

select @vv = @vv + va from #t where [id] = 1


select @vv

drop table #t
------解决方案--------------------
id name
01 小张
01 小王
02 小王
02 小陈

请问怎样变成
id name
01 小张;小王
02 小王;小陈


--建立测试环境
Create Table TEST
(ID Varchar(10),
Name Nvarchar(10))
Insert TEST Values( '01 ', N '小张 ')
Insert TEST Values( '01 ', N '小王 ')
Insert TEST Values( '02 ', N '小王 ')
Insert TEST Values( '02 ', N '小陈 ')
GO
--建立函数
Create Function GetName(@ID Int)
Returns Nvarchar(2000)
As
Begin
Declare @S Nvarchar(2000)
Set @S= ' '
Select @S=@S+ '; '+Name from TEST Where ID=@ID Order By Name
Return (Stuff(@S,1,1, ' '))
End
GO
--测试
Select ID,dbo.GetName(ID) As Name from TEST Group By ID
--删除测试环境
Drop Table TEST
Drop Function GetName
GO
--结果
/*
ID Name
01 小张;小王
02 小王;小陈
*/

,关于日期字段的有关问题