--如:table_test(t_id,t_name);delete from table_test where t_id not in (select max(t_id) from table_test group by t_name);
select distinct * from tablename
先帮你找出来吧 select item_code from table having count(item_code)>1; 这是找出item_code重复的,至于怎么过滤掉办法很多。
--如:table_test(t_id,t_name);-- 根据数据库本身的标示 select * from (select rowid rw ,row_number() over(partition by t_id) rn,t_id,t_name from table_test ) where rn=1 当然如果要 delete多余的行就很简单了 delete table_test where rowid not in (select rw from (select rowid rw ,row_number() over(partition by t_id) rn,t_id,t_name from table_test ) where rn=1 )
楼上说的row_number() over()不知道该怎么用.
我错看成是LZ是想找出重复的行了。
where t_id not in (select max(t_id)
from table_test
group by t_name);
select item_code from table having count(item_code)>1;
这是找出item_code重复的,至于怎么过滤掉办法很多。
select * from
(select rowid rw ,row_number() over(partition by t_id) rn,t_id,t_name from table_test )
where rn=1
当然如果要 delete多余的行就很简单了
delete table_test
where rowid not in (select rw from
(select rowid rw ,row_number() over(partition by t_id) rn,t_id,t_name from table_test )
where rn=1
)