我现在有个表 表里面有ID No,Pass
然后根据No,Pass相同的数据,保留Max(ID)数据,删除其他,如何做?
我是这么做的,不知道行不行
delete Min(ID),CAST(No AS VARCHAR)+CAST(Pass AS VARCHAR)
from Table group by
No, Pass having count(*) > 1
试一下
DELETE
FROM Table
WHERE ID NOT IN
(
SELECT MAX(ID)
FROM Table
GROUP BY No
, Pass
)
可以用distinct或者group by一下
我现在有个表 表里面有ID No,Pass
然后根据No,Pass相同的数据,保留Max(ID)数据,删除其他,如何做?
我是这么做的,不知道行不行
delete Min(ID),CAST(No AS VARCHAR)+CAST(Pass AS VARCHAR)
from Table group by
No, Pass having count(*) > 1
你的写法不对,改成这样试试
delete from table A where A.id < (select max(id) from table B where A.no = B.no and A.pass = B.pass);
或者
delete from table A where A.id not in (select max(id) from table B where A.no = B.no and A.pass = B.pass);
用distinct 做一个嵌套查询
看一下我的博客吧, 很简单的:
http://blog.csdn.net/yenange/article/details/40653131
直接
delete from Table WHERE ID NOT IN(SELECT MAX(ID) FROM Table)就好了。