Plsql 控制升级顺序的排序方法
我有这张桌子 seq Name Last_Name 1拉里·奥尔森 2约翰·沙利文 3安娜·费雷尔Plsql 控制升级顺序的排序方法,plsql,plsqldeveloper,Plsql,Plsqldeveloper,我有这张桌子 seq Name Last_Name 1拉里·奥尔森 2约翰·沙利文 3安娜·费雷尔 例如,我试着把拉里的序列号改为2,那么约翰应该满1岁,同样,如果我把拉里的序列号改为3,那么约翰将是1,安娜是2。我想做的是使用嵌套表,但我很难嵌套两个表。不,听着,如果你知道一个简单的方法,我会很感激。如果序列号来自一个序列,并且你移动了这些值,请确保不要创建新的数字,否则你会打破限制 使用临时表,将行从tab1(实际表)移动到tmptab临时表。更新tmptab中的数据。从tab1中删除这些行
例如,我试着把拉里的序列号改为2,那么约翰应该满1岁,同样,如果我把拉里的序列号改为3,那么约翰将是1,安娜是2。我想做的是使用嵌套表,但我很难嵌套两个表。不,听着,如果你知道一个简单的方法,我会很感激。如果序列号来自一个序列,并且你移动了这些值,请确保不要创建新的数字,否则你会打破限制 使用临时表,将行从tab1(实际表)移动到tmptab临时表。更新tmptab中的数据。从tab1中删除这些行,然后从tmptab中插入它们 在没有嵌套表的情况下尝试此操作:首先在虚拟表上进行tab1和tmptab警告练习
create table tmptab as
(select * from tab1 where seq <= 3);
update tmptab set seq =1 where name='Ana';
update tmptab set seq =2 where name='John'; -- this is just an example
commit;
delete from tab1 where seq<=3;
insert into tab1
values(seq, Name, Last_Name)
select seq, Name, Last_Name
from tmptab;
commit;
drop table tmptab;