我使用的是SQL Server 2008 R2 Enterprise 64位。
我的问题是:
我有两个表t1和t2,一个有Id列,另一个有名称列
我可以查询它们,以便得到以下结果:
ID Name
1 bob
1 ted
2 bill
3 frank
我想要的是看起来像这样的结果:
ID name
1 bob ted
2 bill
3 frank
名称列可以包含1到n个名称
我真正需要做的是转动第二列。我已经使用了强制转换为xml和stuff函数,但这些并不适用于我需要的东西。
我尝试编写一个数据透视功能,但收到错误信息。
SELECT ID, name As name
FROM
(SELECT ID, name
FROM dbo.t1 AS t1
INNER JOIN
dbo.t2 AS t2 ON t1.ID = t2.ID
WHERE (some filter)
AS s
PIVOT
(
max(name)
FOR
[name]
IN ( [name]
)) AS p
提前致谢:)
答案 0 :(得分:3)
一种方法是您可以通过带有FOR XML PATH的子查询连接第二个表。
DECLARE @t1 TABLE (ID INT)
INSERT @t1 VALUES (1),(2),(3)
DECLARE @t2 TABLE (ID INT, Name VARCHAR(50))
INSERT @t2 VALUES (1,'bob'),(1,'ted'),(2,'bill'),(3,'frank')
SELECT
T1.ID,
LTRIM((SELECT ' ' + Name AS [text()] FROM @t2 WHERE ID = T1.ID FOR XML PATH(''))) AS name
FROM @t1 T1
-- WHERE (filter here)
以下是样本的结果:
ID name
----------- --------------------
1 bob ted
2 bill
3 frank
答案 1 :(得分:1)
background-repeat:no-repeat:
background-position:center top;
background-attachment:fixed;