我一直在尝试在 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 问题的正确溢出吗?
编辑:有人在吗?
From oracle-developer.net http://www.oracle-developer.net/display.php?id=506看起来可以这样做:
SELECT somethingId, splitId1, splitName1, splitId2, splitName2
FROM (SELECT somethingId, splitId
FROM SOMETHING JOIN SPLIT ON ... )
PIVOT ( MAX(splitId) ,
MAX(splitName)
FOR displayOrder IN (1 AS splitName1, 2 as splitName2)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)