类别 顺序号 父SEQ 类别以ABCD为顺序
DATA_TYPE SEQ PSEQ
A 1 0 A的父SEQ没有,则为0
B 2 1 B的父SEQ为上一个A的SEQ,为1
C 3 2 C的父SEQ为上一个B的SEQ,为2
D 4 3 C的父SEQ为上一个B的SEQ,为3
A 5 0 A的父SEQ没有,则为0
B 6 5 B的父SEQ为上一个A的SEQ,为5,不是第一个A,是比当前B的SEQ小的A的最大SEQ
C 7 6 C的父SEQ为上一个B的SEQ,为6,不是第一个B,是比当前C的SEQ小的B的最大SEQ
D 8 7 同上
D 9 7 同上
C 10 6 C的父SEQ为上一个B的SEQ,为6,不是第一个B,是比当前C的SEQ小的B的最大SEQ
D 11 10 D的父SEQ为上一个C的SEQ,为10,不是第一个C,也不是第二个C,是比当前B的SEQ小C的最大SEQ请教该如何取得PSEQ的值,谢谢了~
DATA_TYPE SEQ PSEQ
A 1 0 A的父SEQ没有,则为0
B 2 1 B的父SEQ为上一个A的SEQ,为1
C 3 2 C的父SEQ为上一个B的SEQ,为2
D 4 3 C的父SEQ为上一个B的SEQ,为3
A 5 0 A的父SEQ没有,则为0
B 6 5 B的父SEQ为上一个A的SEQ,为5,不是第一个A,是比当前B的SEQ小的A的最大SEQ
C 7 6 C的父SEQ为上一个B的SEQ,为6,不是第一个B,是比当前C的SEQ小的B的最大SEQ
D 8 7 同上
D 9 7 同上
C 10 6 C的父SEQ为上一个B的SEQ,为6,不是第一个B,是比当前C的SEQ小的B的最大SEQ
D 11 10 D的父SEQ为上一个C的SEQ,为10,不是第一个C,也不是第二个C,是比当前B的SEQ小C的最大SEQ请教该如何取得PSEQ的值,谢谢了~
SQL> select * from t_get_num;
DATA_TYPE SEQ PSEQ
---------- ---------- ----------
A 1
B 2
C 3
D 4
A 5
B 6
C 7
7 rows selected
SQL> update t_get_num a set a.pseq=nvl((select max(seq) from t_get_num b where b.seq<a.seq and b.data_type<a.data_type),0);
7 rows updated
SQL> select * from t_get_num;
DATA_TYPE SEQ PSEQ
---------- ---------- ----------
A 1 0
B 2 1
C 3 2
D 4 3
A 5 0
B 6 5
C 7 6
7 rows selected
SQL>