zoukankan      html  css  js  c++  java
  • 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 将结果集分为多个分区。

  • 相关阅读:
    转载-如何高效的学习技术
    Lc176-第二高的薪水
    Lc4-寻找两个有序数组的中位数
    Lc175-组合两个表
    Lc3-无重复字符的最长子串
    Lc2-俩数相加
    Lc1- 两数之和
    jpa-子查詢
    20191225页面样式
    leetcode二刷结束
  • 原文地址:https://www.cnblogs.com/chenh/p/10295904.html
Copyright © 2011-2022 走看看