一尘不染

从列表中选择SQL PIVOT(在SELECT中)

sql

是否可以执行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?


阅读 210

收藏
2021-03-10

共1个答案

一尘不染

如果没有动态SQL,那么恐怕答案是否定的,那是不可能的。解析器需要预先知道值才能执行到列的数据透视。

2021-03-10