Sql Oracle列数增加
我想知道当Oracle中的第2列值发生变化时,如何将第1列中的行数增加1 我希望实现以下目标:Sql Oracle列数增加,sql,database,oracle10g,Sql,Database,Oracle10g,我想知道当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 有什么想法吗 我想您正在寻找一个窗口功能: select row_number
COL1 COL2 COL3 |
1 2000 xx |
1 2000 xy |
1 2000 xyz |
2 3020 x |
2 3020 xiii |
3 5666666 ueueu
有什么想法吗 我想您正在寻找一个窗口功能:
select row_number() over (partition by col2 order by col3) as col1,
col2,
col3
from the_table;
如果您想在更新表
t
上的col2
后增加col1
值,则可以使用触发器
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;
你想用这些值更新col1吗?是的@Sebas这就是我想要实现的。