У меня есть таблица, которая выглядит следующим образом:Сплит строки с одинаковым идентификатором в столбцах
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]
Все еще получаю сообщение об ошибке с точкой с запятой.
Всегда 3 столбца, или может быть больше - например, 10, 100, 1000 ...? –