【发布时间】:2013-03-06 23:14:40
【问题描述】:
我需要在 SQL Server 中对具有以下结构的表进行透视:
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。是的,它很丑。但是,这是必需的,因为每个查询都有一个独立于数据的固定形状(例如已知的列名)。网上有很多例子,搜索“动态枢轴” - 例如。 stackoverflow.com/questions/10404348/…
标签: sql-server pivot transpose