mssql sqlserver 使用sql取重复数据中的最小的一条的方法分享


摘要:
下文讲述当数据表中数据重复时,我们取排序后最小一条的方法分享,如下所示:
实验环境:sql server 2008 R2


在日常的数据查询中,我们常常会遇见一些问题,例:
如果表中两个字段重复,则取最先插入的那条数据,那么我们该如何编写sql脚本呢?
下文将讲述使用row_number开窗函数对群组内的数据进行依次排序,然后取最小的一条数据,具体实现方法如下所示:

create table [maomao365.com]
([列1]  nvarchar(30),
 [列2]  nvarchar(30),
 [排序] int identity )
go

insert into [maomao365.com]
([列1],[列2])values(N'人事部',N'人事部'),
(N'行政部',N'行政部'),
(N'财务部',N'其它部门'),
(N'人事部',N'人事部'),
(N'销售部',N'总裁办'),
(N'行政部',N'行政部')

go

select * from 
 (
  select *,row_number()
   over(partition by [列1],[列2] 
    order by [排序] asc) as keyId  from  [maomao365.com] 
 )
 as t 
where t.keyId =1 
 


go
truncate table [maomao365.com]
drop     table [maomao365.com]
mssql_sqlserver_重复数据取一条_9404

mssql_sqlserver_重复数据取一条_9404