【发布时间】:2011-08-28 23:11:30
【问题描述】:
是否可以执行 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 的情况下做到这一点?
【问题讨论】:
-
不,很遗憾,您需要在
IN子句中指定值。您可以使用动态 SQL 来检查值,然后执行结果语句。
标签: sql sql-server tsql pivot