日期:2014-05-16  浏览次数:20461 次

SQL去掉重复数据记录

我的数据如上述所示   以ISBN字段为例   想去掉重复的且PrimaryAuthor作者字段为空的那些记录  请问这样的语句 怎么写  谢谢了
------解决方案--------------------
where PrimaryAuthor<>'' 或者用group by加max去重
------解决方案--------------------

DELETE  A FROM Book AS a WHERE EXISTS(SELECT 1 FROM Book WHERE ISBN=a.ISBN AND a.Title=b.BookName AND ISNULL(PrimaryAuthor,'')>'') AND ISNULL(PrimaryAuthor,'')=''

------解决方案--------------------
DELETE a FROM [Table] a WHERE EXISTS(SELECT 1 FROM [Table] WHERE ISBN=a.ISBN AND PrimaryAuthor<>'') AND PrimaryAuthor=''

------解决方案--------------------
试试这个:
select *
from
(
select *,
       ROW_NUMBER() over(partition by isbn order by primaryAuthor desc) rownum
from 表
)t
where rownum = 1