我正在尝试将“行”透视到列。我使用了Pivot函数,但是当我尝试在实际查询中使用它时,却给了我一个错误。
如果我分开运行,这两个代码都可以很好地运行,它给了我正确的输出
1)
(
SELECT N.PROJECTID,
MAX(CASE WHEN N.QUESTIONID = '1' THEN N.ANSWER END ) QUESTION1,
MAX(CASE WHEN N.QUESTIONID = '2' THEN N.ANSWER END ) QUESTION2,
MAX(CASE WHEN N.QUESTIONID = '3' THEN N.ANSWER END ) QUESTION3,
MAX(CASE WHEN N.QUESTIONID = '4' THEN N.ANSWER END ) QUESTION4,
MAX(CASE WHEN N.QUESTIONID = '5' THEN N.ANSWER END ) QUESTION5
FROM PETE.VW_NOMCRQUESTIONNAIRE N
GROUP BY N.PROJECTID
);
2)
SELECT * FROM
(
SELECT PROJECTID, QUESTIONID, ANSWER FROM PETE.VW_NOMCRQUESTIONNAIRE
)
PIVOT
(
Max(answer)
FOR QUESTIONID IN (1 AS QUESTION_1,2 AS QUESTION_2,3 AS QUESTION_3,4 AS
QUESTION_4,5 AS QUESTION_5)
);
我想在具有多个联接的实际查询中使用两者。它给我一个类似的错误
ORA-00913:值太多
00913. 00000-“值太多”
*原因:
*行动:
第67行错误:5列
我知道发生错误的原因,因为枢轴列的输出数量不同。
有什么方法可以在查询中使用它吗?
我想看到其余数据的行到列值。我将不胜感激。