【发布时间】:2011-03-12 23:39:58
【问题描述】:
我一直试图在 Oracle 11g 中不再使用 DECODE 来对行进行透视,其中有一个方便的 PIVOT 函数。但我可能发现了一个限制:
我正在尝试为基表中的每个值返回 2 列。比如:
SELECT somethingId, splitId1, splitName1, splitId2, splitName2
FROM (SELECT somethingId, splitId
FROM SOMETHING JOIN SPLIT ON ... )
PIVOT ( MAX(splitId) FOR displayOrder IN (1 AS splitId1, 2 AS splitId2),
MAX(splitName) FOR displayOrder IN (1 AS splitName1, 2 as splitName2)
)
我可以使用 DECODE 来做到这一点,但我无法掌握让我使用 PIVOT 来做到这一点的语法。这甚至可能吗?看起来这个函数处理起来不会太难。
编辑:StackOverflow 是否可能不是 SQL 问题的正确溢出?
编辑:有人在吗?
【问题讨论】:
-
来吧,有没有是或否的答案?我是在错误的 Oracle SQL 论坛上吗?
-
不幸的是,PIVOT 在 Oracle 中非常新,似乎这里的大多数人都没有足够的知识来回答您的问题。您如何尝试在 forums.oracle.com 上发帖?去那里的 Oracle 专家比来这里的多。
-
你的问题在添加“oracle”标签的那一刻就出现在我的列表中:)
标签: sql oracle pivot oracle11g