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

请问这样的SQL语句
表结构示意如下:
表1
[id]       [名称]
1               名称1
2               名称2
3               名称3

表2
[id]             [时间]           [地点]
1                     5日                 上海
1                     9日                 北京
1                     20日               天津
2                     8日                 杭州
2                     19日               广州
3                     8日                 深圳


想要的结果
[id]         [时间、地点]
1                 5日-上海;9日-北京;20日-天津
2                 8日-杭州;19日-广州
3                 8日-深圳


我现在的做法是在程序里面循环,速度慢,
能否一条SQL语句搞掂?
哪位大侠能帮忙?

------解决方案--------------------
好象和表1没什么关系?
------解决方案--------------------
很有意思
关注

------解决方案--------------------
用join on把两个表关联不就行了...
比如:
select [字段],[字段],[字段] from table1 join table2 on table1.[字段]=table2.[字段]
where......
------解决方案--------------------
以前见过类似的问题 最后不了了之了
------解决方案--------------------
寫一個函數就可以實現


--創建函數
Create Function F_TEST(@id Int)
ReturnS Nvarchar(4000)
As
Begin
Declare @S Nvarchar(4000)
Select @S = ' '
Select @S = @S + '; ' + 时间 + '- ' + 地点 From 表2 Where id = @id
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
--測試
Select
id,
dbo.F_TEST(id) As [时间、地点]
From
表1
GO