根据条件

时间:2018-03-29 06:32:13

标签: plsql

我有一张表:

ID  ID2 Name
1   1   
2   1   
3   2   
4   2   
5   2   
6   3   
7   3   
8   3   

我想使用Name1,name 2等值更新Name列。 如果ID2列中有两个相似的值,这将基于条件,例如,前两行,然后分别使用值Name1和Name2更新Name列。下一行分别是Name1,Name2,Name3等等上。有人可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

ROW_NUMBER列上ID2列的ID UPDATE yourTable t1 SET Name = (SELECT 'Name' || t.rn FROM ( SELECT t2.ID, t2.ID2, ROW_NUMBER() OVER (PARTITION BY t2.ID2 ORDER BY t2.ID) rn FROM yourTable t2 WHERE t1.ID = t2.ID AND t1.ID2 = t2.ID2 ) t) 按{{1}}列排序,应生成所需的序列。试试这个更新查询:

{{1}}