我想知道在Oracle中第2列值更改时如何在第1列中将行号增加1
我正在寻找的是实现这一目标:
COL1 COL2 COL3 |
1 2000 xx |
1 2000 xy |
1 2000 xyz |
2 3020 x |
2 3020 xiii |
3 5666666 ueueu
有什么想法吗?
答案 0 :(得分:2)
我认为你正在寻找一个窗口功能:
select row_number() over (partition by col2 order by col3) as col1,
col2,
col3
from the_table;
答案 1 :(得分:0)
如果您想在表col1
上更新col2
后增加t_
值,则可以使用触发器。
CREATE OR REPLACE TRIGGER upcol1
AFTER UPDATE ON t_ FOR EACH ROW
WHEN (old.col2 != new.col2)
BEGIN
UPDATE t_ SET col1=:new.col1+1
WHERE col2=:new.col2 AND col3=:new.col3;
END;