以下是display_item作为列名 select * from (select project,display_item,orderid from design_bom_displayformat) a pivot (max(orderid) for display_item in (area,module,specialty)) b
以下是orderid作为列名,会报错 select * from (select project,display_item,orderid from design_bom_displayformat) a pivot (max(display_item) for orderid in (1,2,3)) b 错误信息为: 消息 102,级别 15,状态 1,第 3 行 '1' 附近有语法错误。
[最优解释]
SELECT * FROM ( SELECT project , display_item , orderid FROM design_bom_displayformat ) a PIVOT ( MAX(display_item) FOR orderid IN ( [1], [2], [3] ) ) b
联机丛书的语法:你可以看到是要加[]的。不用管为什么,记住就好了 PIVOT
(
<聚合函数>(<要聚合的列>)
FOR
[<包含要成为列标题的值的列>]
IN ( [第一个透视的列], [第二个透视的列],
... [最后一个透视的列])
) AS <透视表的别名>
[其他解释] select * from (select project,display_item,orderid from design_bom_displayformat) a pivot (max(display_item) for orderid in ([1],[2],[3])) b [其他解释]