Oracle列数增加

时间:2014-07-31 19:36:34

标签: 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

有什么想法吗?

2 个答案:

答案 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;