數據庫環境:SQL SERVER 2005
最近在整理數據時,要將查詢到的數據張貼到Excel中。在Excel中,要展示的行數是固定的,列數不固定,
一個一個數據的復制張貼太煩人。想了一個偷懶的方法,直接將查詢的數據進行行轉列,達到和Excel中的效果一致,
再整列復制到Excel中。
1.創建測試表,導入測試數據
/*從系統表sysobjects取出name字段的42行數據,用作測試數據*/WITH x0 AS ( SELECT TOP 42 name FROM sysobjects ),/*產生序號*/ x1 AS ( SELECT ROW_NUMBER() OVER ( ORDER BY name ) AS rn , name FROM x0 ),/*生成組號*/ x2 AS ( SELECT ( rn - 1 ) / 5 AS gp ,--不固定列數 rn % 5 AS col ,--分5列 rn , name FROM x1 ) SELECT * INTO #t FROM x2View Code
2.固定列數行轉列實現
在測試數據里,我們已經將數據分了固定5個組。因此,可以通過行轉列將數據分成5列顯示。
SELECT *FROM ( SELECT gp , col , name FROM #t ) AS t1 PIVOT( MAX(name) FOR col IN ( [0], [1], [2], [3], [4] ) ) AS t2View Code
看一下已知列數的分組結果
新聞熱點
疑難解答