【发布时间】:2012-03-08 08:46:33
【问题描述】:
与其他问题(例如“Oracle 将行转换为列”)相比,这个技巧的诀窍是我的列值是任意字符串,而不是我可以用于解码的字符串。接受这个查询:
这里的描述表将人名映射到描述,但每个人可以有多个描述,例如“戴着帽子”或“很高”。
Select firstName, lastName,
(Select description from descriptions --This can return any number of rows (0 or more)
where description.firstName = people.firstName
and description.lastName = people.lastName
and rownum <= 3)
from people
where age >= 25;
我想要这样的输出:
FIRSTNAME LASTNAME DESCRIPTION1 DESCRIPTION2 DESCRIPTION3
Jeremy Smith Tall Confused (null)
Anne Smith (Null) (Null) (Null)
Mark Davis Short Smart Strong
在少于 3 个描述的情况下,我希望那里有空值。如果描述超过 3 个,我想省略它们。
我使用的是 Oracle 11.1。这可以有效地完成吗?
【问题讨论】: