sqlserver记录去重

   
  INSERT INTO [employee] select 2
      ,[emp_name]
      ,[gender]
      ,[department]
      ,[salary]
   from  [employee]

select * from 
  (  select ROW_NUMBER() over(partition by emp_id order by emp_id) empid ,* from [employee]) as tb
  where tb.empid=1
 
delete tb from   
(select ROW_NUMBER() over(partition by emp_id order by emp_id) empid,*from employee)  as tb
where tb.empid>1

select * from employee

上面就是开窗函数例子,开窗函数是在 ISO 标准中定义的。SQL Server 提供排名开窗函数和聚合开窗函数。

  在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成。SQL Server 2005 引入了开窗函数,使得这些经典的难题可以被轻松的解决。

  窗口是用户指定的一组行。开窗函数计算从窗口派生的结果集中各行的值。开窗函数分别应用于每个分区,并为每个分区重新启动计算。

  OVER 子句用于确定在应用关联的开窗函数之前,行集的分区和排序。PARTITION BY 将结果集分为多个分区。

转载于:https://www.cnblogs.com/chenh/p/10295904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值