Hi Try this,IF OBJECT_ID('tempdb..#T') IS NOT NULLDROP TABLE #TIF OBJECT_ID('tempdb..#TT') IS NOT NULLDROP TABLE #TTCREATE TABLE #T( ID INT )INSERT INTO #TSELECT number FROM Master..spt_Values WHERE Type = 'P' AND number BETWEEN 1 and 23DECLARE @Cnt INTSELECT @Cnt = (COUNT(*)/2) + (COUNT(*)%2) FROM #TSELECT *, ROW_NUMBER() OVER (PARTITION BY CASE WHEN @Cnt < ID THEN 1 ELSE 2 ENDORDER BY ID) AS 'ROW', CASE WHEN @Cnt < ID THEN 2 ELSE 1 END AS 'seq'INTO #TTFROM #TDECLARE @Sql VARCHAR(MAX)DECLARE @Cols VARCHAR(MAX)SELECT @Sql = '', @Cols = ''SELECT @Cols = @Cols + ', MAX(CASE WHEN ROW = ' + cast(ROW as varchar(10)) + 'THEN ID END) AS "' + cast(ROW as varchar(10)) + '"'FROM ( SELECT DISTINCT ROW FROM #TT ) Aprint @ColsSELECT @Sql = 'SELECT ' + STUFF(@Cols, 1, 1, '') + ' FROM #TTGROUP BY seq 'EXEC(@Sql)