oracle为特定缺失值插入行

时间:2017-03-21 00:19:19

标签: oracle11g

我在下面的表格中有一些信息。

ID     IDZONE    IDVALUE     RANK
A1     ZONE-1    100         1
B1     ZONE-1    100         1
C1     ZONE-1    100         1
C1     ZONE-2    200         2
C1     ZONE-3    300         3
C1     ZONE-4    400         4
C1     ZONE-5    500         5
n rows----

我想重新显示表格以确保每个ID应包含RANK值1-5,如下所示(null / 0表示缺失值)。

ID     IDZONE    IDVALUE     RANK
A1     ZONE-1    100         1
A1     null      0           2
A1     null      0           3
A1     null      0           4
A1     null      0           5
B1     ZONE-1    100         1
B1     null      0           2
B1     null      0           3
B1     null      0           4
B1     null      0           5 
C1     ZONE-1    100         1
C1     ZONE-2    200         2
C1     ZONE-3    300         3
C1     ZONE-4    400         4
C1     ZONE-5    500         5
n rows------

通过在RANK列上使用单独的WITH子句尝试左连接,但没有任何效果。请建议我们如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

由于您在oracle中,您可以使用此技术来创建所需的人工数据。然后加入它,并保留不在主要集合中的人工数据。

SELECT LEVEL n
FROM DUAL
CONNECT BY LEVEL <= 5;