SQL Server连接多行的值

时间:2014-01-20 21:25:52

标签: sql sql-server ssrs-2008

所以我有一个我正在使用的数据库,其中包含两个表:

Player
Times

在前端,这些表中的数据组合成一个表格,如下所示:

playerName | Times
Player1    | 1.0 2.0 4.5 7.5
Player2    | 1.5 4.3 7.8 2.0 4.5

尽可能地,玩家可以在该列中多次出现。我的问题是这些时间并将它们连接到一个领域。

数据库中的两个表通过ID字段相关。 Times表包含一个由该ID字段组成的复合键以及该时间的ID。即每个时间都是自己的一排。

如何抓住每个时间并将它们连接到每个玩家的一个字段中?我不能为每个玩家提供查询返回的多行,因为其他地方使用了其他玩家表中的字段。这将导致前端也显示许多行,这不是一个选项。

1 个答案:

答案 0 :(得分:3)

这样的事情:

SELECT P.PlayerName,
    AT.Times
FROM Player P
CROSS APPLY
(
  SELECT CAST(Time as varchar) + ' ' as [text()]
  FROM Times T
  WHERE P.Id = T.PlayerId
  FOR XML PATH('')
)AT(Times)

<强> SQL FIDDLE DEMO