【发布时间】:2018-11-21 13:32:18
【问题描述】:
我需要以动态方式在子查询的结果上添加一个虚拟列。我需要在嵌套表 nt 中为子查询的每个结果添加 n 个虚拟列作为 n 值。我的意思是,例如,我有一个包含 7 个结果的嵌套表 nt,即 nt = {'one','two','three','four','five','six','seven'} 和一个返回 30 个结果的子查询(一个 SELECT),即:
FROM{
----- SUBQUERY WITH 30 RESULTS ------
}
子查询结果:
ID|NAME|SURNAME|
1|JACK|BROWN|
2|BRAD|PITT|
3|ROBBIE|WILLIAMS|
.
.
.
30|JOHNNY|DEPP|
我想为子查询结果的每个元素添加一列,即嵌套表值的列。我的意思是,最后我想要一个子查询结果 rows*nested table values = 30*7 = 210 rows,以动态方式获得,因为嵌套表可以升级。最后我想获得类似的东西:
ID|NAME|SURNAME|nt_value
1|JACK|BROWN|one
1|JACK|BROWN|two
1|JACK|BROWN|three
.
.
.
1|JACK|BROWN|seven
2|BRAD|PITT|one
2|BRAD|PITT|two
.
.
.
2|BRAD|PITT|seven
.
.
.
30|JOHNNY|DEPP|one
.
.
.
30|JOHNNY|DEPP|seven
(Main query)
FROM { SELECT id, name, surname, [nt] AS nt_value FROM artist}
(query main continue)
我不想插入一个 plsql FOR...LOOP 循环,因为主查询太大并且有几个子查询,因此我不想为一个由 a 进行的总查询的每个结果创建一个 UNION nt内索引的迭代
【问题讨论】:
-
请不要在其他 RDBMS 上添加垃圾邮件标签。
标签: sql oracle plsql subquery nested-table