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

表字段合并
表A:
NO context
1 aaa
2 bbb
表B:
NO Name1 Name2 name3
1 北京 上海 南京
1 南京 北京 上海
2 南京 武汉 上海
2 武汉 杭州 上海
现在要得到这个结果:
NO context Name
1 aaa 北京   上海   南京
2 bbb 南京   武汉   杭州   上海

------解决方案--------------------
--創建函數
Create Function F_TEST(@NO Int)
Returns Nvarchar(1000)
As
Begin
Declare @S Nvarchar(1000)
Select @S = ' '
Select @S = @S + ' ' + Name From (Select NO, Name1 As Name From B Union Select NO, Name2 As Name From B Union Select NO, name3 As Name From B ) B Where NO = @NO
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
--測試
Select
*,
dbo. F_TEST(NO) As Name
From
A