sql 去除重复数据(多字段)

我现在有个表 表里面有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)就好了。