我需要轉動在SQL Server中的表結構如下:樞軸或轉在SQL Server中的表不進行分組BY
CREATE TABLE table1 (
ColumnNumber int,
RowNumber int,
CellData nvarchar(50)
)
INSERT INTO table1 VALUES
(1, 1, 'Orange'),
(2, 1, 'Apple'),
(3, 1, 'Banana'),
(1, 2, 'Grape'),
(2, 2, 'Corn'),
(3, 2, 'Lemon'),
(1, 3, 'Tomato'),
(2, 3, 'Lettuce'),
(3, 3, 'Onion')
而我需要的結果表看起來像這樣:
因此,ColumnNumber
行中的單元現在是結果表的列名稱。最難的部分是不同列數的數量是可變的(所以現在,我們有3列數,但明天可能會有6或10)。
我一直在尋找PIVOT函數,但所有的例子都包含GROUP BY
,正如你在這裏看到的,我需要更多的東西,像一個「轉置」excel函數。
謝謝!
構建SQL動態。是的,這很醜。但是,這是必需的,因爲每個查詢都具有與數據無關的固定形狀(例如已知列名稱)。網上有很多例子,搜索「動態樞軸」 - 例如http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query – 2013-03-06 23:16:28
也http://stackoverflow.com/questions/12430512/dynamic-pivot-table-in-sql-server?rq=1 ,http://stackoverflow.com/questions/1984306/sql-server-pivot-column-data?rq=1等 – 2013-03-06 23:22:25