在oracle数据库中怎样循环删除重复数据用for in loop

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle数据库中怎样循环删除重复数据用for in loop相关的知识,希望对你有一定的参考价值。

例如:
select s.id,s.name,s.num from student s group by s.id,s.name,s.num having count(1)>1;--要删除的重复数据

参考技术A for cur (select s.id,s.name,s.num,count(1),max(rowid) max_rowid from student s group by s.id,s.name,s.num having count(1)>1)
loop
delete from student where rowid<>cur.max_rowid and id=cur.id and name=cur.name and num=cur.num
end loop;本回答被提问者采纳

DataTable中怎样将重复的数据合并

比如:DataTable中的数据是
name num
张三 18
张三 20
李四 21

我想合成这样的一个datatable
name num
张三 38
李四 21

不能用sql语句实现

思路是这样:首先去除不重复的name 列,比如
name
张三
李四,可以用 datatable.DefaultView.ToTable(true, new string[] "name");//取出distinct的name列,然后相加用一个方法处理
写个方法就行

循环原来的datatable的每一行,传入name值,取出遇到的name是当前值的列的值相加
参考技术A 不用sql啊,那先copy表datatable作为新的合并后的数据表
然后foreach原来的表,挑出name相同的项,加合num的值,把name和加合后的num值作为新表的row插入到上面copy后的表里本回答被提问者和网友采纳

以上是关于在oracle数据库中怎样循环删除重复数据用for in loop的主要内容,如果未能解决你的问题,请参考以下文章

python循环里的列表怎样添加到循环外

怎样删除Oracle数据库中的冗余数据

sqlserver中怎样使用游标for循环

sqlserver中怎样使用游标for循环

Oracle中使用PL/SQL怎样用循环插入多条数据?

从 For 循环中删除重复项