是否可以执行PIVOT并从表中选择列表,而不是使用单个值?
像这样(不正确的语法错误):
SELECT * FROM ( SELECT RepID, MilestoneID, ResultID FROM RM ) AS src PIVOT ( MAX(ResultID) FOR MilestoneID IN (SELECT id FROM m) ) AS pvt
这个可以编译,但是对我不起作用:
SELECT * FROM ( SELECT RepID, MilestoneID, ResultID FROM RM ) AS src PIVOT ( MAX(ResultID) FOR MilestoneID IN ([1], [2], [3], [4]) ) AS pvt
PS:我不想使用动态SQL,有没有一种方法可以不使用动态SQL?
如果没有动态SQL,那么恐怕答案是否定的,那是不可能的。解析器需要预先知道值才能执行到列的数据透视。