USE tempdb
CREATE
TABLE
tblTest (
Id
INT
,Col_1
)
INSERT
INTO
tblTest
VALUES
(
1
,12345
,(
,23456
,45678
2
,57823
,11111
,34304
,12344
DECLARE
@MaxCount
;
SELECT
@MaxCount =
max
(cnt)
FROM
,
count
(Col_1)
AS
cnt
GROUP
BY
) X;
@SQL NVARCHAR(
,@i
SET
@i = 0;
@SQL =
''
WHILE @i < @MaxCount
BEGIN
@i = @i + 1;
@SQL = @Sql +
',
MAX(CASE WHEN RowNo = '
+
cast
(@i
NVARCHAR(10)) +
' THEN Col_1 END) AS Col'
NVARCHAR(10));
END
@SQL = N
';WITH CTE AS (
SELECT ID, Col_1, row_number() OVER (PARTITION BY ID ORDER BY Col_1) AS rowno
FROM tblTest
SELECT ID '
+ @SQL + N
'
FROM CTE
GROUP BY ID'
PRINT @SQL;
EXECUTE
(@SQL);