【发布时间】:2015-09-23 21:07:22
【问题描述】:
我有一张如下所示的表格:
ID Name
1 John
1 Maria
1 Sam
2 Lisa
2 Martin
我想要这样的输出:
ID NAME1 NAME2 NAME3
1 John Maria Sam
2 Lisa Martin NULL
我不想使用 pivot 函数,因为它不会给我这个结果(尝试这个时)。
ID 只会生成 3 行具有相同的id nr,因此只有 3 个名称列。
完成此查询的 SP:
INSERT INTO [Database].[dbo].[TEST]
(
[ID],
[Contact1],
[Contact2],
[Contact3]
)
;WITH CTE
AS
(
SELECT
ID,
NAMN,
ROW_NUMBER() OVER(PARTITION BY P_ID ORDER BY NAMN) AS RowNum
FROM tabl1
WHERE VISA_EJ = 0
)
SELECT
[ID],
[1] AS [Contact1],
[2] AS [Contact2],
[3] AS [Contact3]
FROM CTE
PIVOT(MAX(NAMN) for RowNum in ([1],[2],[3])) AS [Contacts]
分号仍然出错。
【问题讨论】:
标签: sql sql-server merge rows