2013-03-25 21 views

回答

1

那麼,首先,你不能在表中有無限數量的列,所以我假設你有更少的1023個進程。總之,你需要使用動態旋轉此:

DECLARE @Processes AS NVARCHAR(MAX), @Query AS NVARCHAR(MAX); 

SELECT @Processes = STUFF((SELECT DISTINCT ',' + QUOTENAME(Process) 
          FROM YourTable 
          WHERE Process IS NOT NULL 
          FOR XML PATH(''), 
          TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'') 

SET @Query = ' 
SELECT * 
FROM YourTable T 
PIVOT(SUM([Percent]) FOR Process IN ('[email protected]+')) AS PT' 

EXEC(@Query) 

Here is a sqlfiddle了現場演示。