0
我已经在这一段时间搁浅了一段时间。 我试图检索VARRAY中的值,并在另一个值下查询它到同一行,在这种情况下,游戏的标题,请参阅下面的更多信息。该表是目前这样的(我已经采取了很多的属性进行简化它)输出VARRAY结果到1行
CREATE TYPE Publisher_Type AS OBJECT
(PublisherName VARCHAR2(30))
/
CREATE TABLE Publisher_Table of Publisher_Type
/
INSERT INTO Publisher_Table
VALUES ('EA')
/
CREATE OR REPLACE TYPE Genre_Game AS OBJECT
(Genre VARCHAR(20))
/
CREATE OR REPLACE TYPE Genre_Type AS VARRAY(3) OF Genre_Game
/
CREATE OR REPLACE TYPE Game_Type AS OBJECT
(Title VARCHAR2(50),
GamePublisher REF Publisher_Type
GameGenre Genre_Type)
/
CREATE Game_Table of Game_Type
/
INSERT INTO Game_Table
VALUES('Madden 17', (SELECT REF(c) FROM Publisher_Table WHERE
c.PublisherName = 'EA'), (Genre_Type(Genre_Game('Sports'),
Genre_Game('Simulation'), Genre_Game('Football')))
下面就是我从网上阅读一些职位尝试,但它只是将无法正常工作。我的理想输出 劲爆17 EA体育,模拟,足球
SELECT title , m.GamePublisher.PublisherName,
max(decode(rn, 1, GameGenre)) genre1,
max(decode(rn, 2, GameGenre)) genre2,
max(decode(rn, 3, GameGenre)) genre3
FROM (
SELECT title, m.GamePublisher.PublisherName, f.*,
row_number() over (partition by title order by GameGenre) rn
FROM Game_Table m, table(m.GameGenre) f
WHERE title = 'Madden 17'
)
group by title