以下是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 ------其他解决方案--------------------