-2

I have the following records in a database table

ID   NAME         REF
-----------------------
1    ar.chik       33
4    ar.chik.rt    33
5    dy.i.op       35
9    dy.i

Which statement can remove the following records:

ID   NAME         REF
------------------------
4    ar.chik.rt    33
5    d.yi.op       35
4

3 回答 3

2

如果要删除表中与原始行相似的行name,则应该能够使用类似于以下内容的内容:

delete 
from yourtable
where id in (select id
             from
             (
               select id, 
                 row_number() over(partition by ref
                                   order by length(name)) rn
               from yourtable
             ) d
             where rn > 1);

请参阅带有演示的 SQL Fiddle

于 2013-06-20T14:34:53.217 回答
1

如果我明白你想要什么,你可以使用这个:

DELETE FROM Yourtable WHERE name='ar.chik.rt' OR name='d.yi.op' ;

或者

DELETE FROM Yourtable WHERE name IN ('ar.chik.rt','d.yi.op') ;

或者,如果您想删除带有多个点的记录:

DELETE FROM Yourtable WHERE name LIKE '%.%.%' ;
于 2013-06-19T15:59:28.657 回答
0
delete from Yourtable 
where id in(4,5);
于 2013-07-17T18:00:35.197 回答