所以我有一个以下格式的层次结构表:
Instance | Parent | Serial | Hierarchy Level
1 | 0 | x0 | 1
2 | 0 | x1 | 1
3 | 1 | xy0 | 2
4 | 1 | xy1 | 2
5 | 2 | - | 2
6 | 2 | - | 2
7 | 2 | - | 2
我想得到的是:
Instance | Parent | Serial | Hierarchy Level
1 | 0 | x0 | 1
2 | 0 | x1 | 1
3 | 1 | xy0 | 2
4 | 1 | xy1 | 2
5 | 1 | x0 | 2
6 | 2 | x1 | 2
7 | 2 | x1 | 2
所有级别1都有序列号。我的目标是更新Serial为null的所有级别2,为此,我必须选择父级的序列号。有人可以告诉我如何解决这个问题。
这是我到目前为止所尝试的(以及其他一些事情,无济于事):
UPDATE "USER"."TABLE" AS A1
SET A1.SERIAL =
(
SELECT "SERIAL"
FROM "USER"."TABLE" AS A2
WHERE A2."PARENT" = A1."INSTANCE"
)
WHERE "SERIAL" IS NULL
AND "HIERARCHYLEVEL" = 2
原生到java,我觉得这应该更容易,但我遇到了很多困难。任何帮助将不胜感激。
答案 0 :(得分:0)
抱歉这个愚蠢的问题。简单的解决方法就像@dr_nielsen在OP回复中解释的那样:
UPDATE "user"."table" AS A1
SET A1.serial =
(
SELECT "serial"
FROM "user"."table" AS A2
WHERE A1."PARENT" = A2."INSTANCE"
)
WHERE "serial" IS NULL
AND "HIERARCHYLEVEL" = 2