根据所有字段去重: SELECT DISTINCT * from dbo.book sql根据多个字段去重: SELECT title,isbn,author_id ,page_count from dbo.book group by title,isbn,author_id ,page_count sql根据多个字段去重,并且返回所有字段: SELECT * from dbo.book a where id in (SELECT max(id) from dbo.book group by title,isbn,author_id ,page_count ) 如果数据量比较大的话in会有效率问题,可以采用以下写法: SELECT a.* from dbo.book a , (SELECT max(id) as id from dbo.book group by title,isbn,author_id ,page_count )b where a.id = b.id
// 去重字段: AtWork ,EmployeeNum ; 因为我这AtWork字段 存储的是日期加时间 例如:(2020-02-02 08:02:02) ,所以用 SUBSTRING截取 年月日进行去重了;
SELECT * from [dbo].[SwipeCardData] a where id in (SELECT max(id) from [dbo].[SwipeCardData]group by SUBSTRING([AtWork], 1, 10),EmployeeNum) and SUBSTRING([AtWork],1,10) >=\'2021-03-02\'and SUBSTRING([AtWork],1,10) <=\'2021-03-02\' order by SUBSTRING([AtWork],1,10),EmployeeName