SQL Server / Oracle:如何增加依赖于另一列的索引列?

时间:2017-02-20 10:11:33

标签: sql-server oracle sql-update

鉴于下表:

Column1 Column2 idx
-------------------
1       1       0
2       1       0
3       2       0
4       3       0
5       3       0
1       3       0

如何使用idx语句在SQL Server和Oracle中增加依赖于column2的{​​{1}}列?

我想:

UPDATE

谢谢!

2 个答案:

答案 0 :(得分:1)

这种(或类似的)方法应该适用于:

JSON.parse(yourDataStr)

(这里我假设Column1的第6行有一个拼写错误 - 如果没有,还应该有其他的东西可以订购)

答案 1 :(得分:1)

使用Oracle,您需要一个MERGE语句:

merge into x using (
  select rowid as rid, 
         row_number() over(partition by Column2 order by Column1) as new_idx
  from tbl
) t on (t.rid = x.rowid)
when matched then 
  set idx = t.new_idx;

您可以使用表格的主键列替换连接,而不是使用rowid