【发布时间】:2013-01-27 19:26:18
【问题描述】:
我有一个如下所示的表格:
CREATE
OR
REPLACE
TYPE subaccount_nt
IS TABLE OF VARCHAR2(30);
CREATE
TABLE my_table
( contract_id NUMBER(38,0)
, subaccount SUBACCOUNT_NT );
以下是一些示例数据:
100 [1000, 1, 2]
200 [2000, NULL, 999]
300 [3000]
如果存在第三行,我如何编写查询以从嵌套表中返回第三行?这是我想要得到的输出:
100 1
200 NULL
300 NULL
以前从未使用过嵌套表,我发现很难对我的查询进行论坛。谢谢。
【问题讨论】:
-
"嵌套表的第三行" .你有一个问题,因为嵌套表没有按特定顺序存储(就像常规表一样)。所以“第三行”可以是任何元素,不一定是您插入的第三项。例如,如果您将 `insert into my_table values (200, SUBACCOUNT_NT(2000, NULL, 999));` 999 可能会或可能不会随着时间的推移成为第三行。只有 VARRAY 有可靠的排序
标签: sql oracle select oracle11g nested-table