sql server 2008 R2删除重复数据的方法

推荐方法3

--方法1:

SELECT  *

FROM    ( SELECT    Row_Number() OVER ( PARTITION BY [orderno] ORDER BY ( SELECT

                                                             0

                                                             ) ) AS RowNO ,

                   *

         FROM      tblMulCharge

       ) t

WHERE   T.RowNO > 1 ;

--方法2:

WITH    ct01

         AS ( SELECT   ROW_NUMBER() OVER ( PARTITION BY orderno ORDER BY ( SELECT

                                                             0

                                                             ) ) AS rn

              FROM     tblMulCharge

            )

   DELETE  FROM ct01

   WHERE   rn > 1

   go

--方法3:针对大数据

WITH    ct01

         AS ( SELECT   [ID] ,

                       [OriOrderNo] ,

                       [OrderNo] ,

                       [TotalAmount] ,

                       [PayAmount] ,

                        [ProviderAmount] ,

                       [transaction_id] ,

                       [PNRCode] ,

                        [Consumer] ,

                       [Provider] ,

                       [SellerAccount] ,

                        [BuyerAccount] ,

                       [State] ,

                       [PayTime] ,

                       [PayInfo] ,

                       [RefundTime] ,

                       [refund_id] ,

                       [refund_info] ,

                        [RefundTimeV] ,

                       [refund_id_V] ,

                       [refund_info_V] ,

                        [RefundAmount] ,

                       ROW_NUMBER() OVER ( PARTITION BY orderno ORDER BY ( SELECT

                                                             0

                                                             ) ) AS rn

              FROM     tblMulCharge

            )

   SELECT  

   [ID]

     ,[OriOrderNo]

     , [OrderNo]

     ,[TotalAmount]

     , [PayAmount]

     ,[ProviderAmount]

     , [transaction_id]

     ,[PNRCode]

     , [Consumer]

     ,[Provider]

     , [SellerAccount]

     ,[BuyerAccount]

     , [State]

     ,[PayTime]

     ,[PayInfo]

     ,[RefundTime]

     ,[refund_id]

     ,[refund_info]

     ,[RefundTimeV]

     ,[refund_id_V]

     ,[refund_info_V]

     ,[RefundAmount]

   INTO    dbo.tblMulCharge_tmp

   FROM    ct01

   WHERE   rn = 1

DROP TABLE dbo.tblMulCharge ;

EXEC sp_rename 'dbo.tblMulCharge_tmp', 'tblMulCharge'

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

时间: 2024-10-29 22:38:47

sql server 2008 R2删除重复数据的方法的相关文章

图片-Sql Server 2008 R2 删除后重装卡死问题!

问题描述 Sql Server 2008 R2 删除后重装卡死问题! 我家是Win32的PC,用VM/Windows Server 2003 安装SQL Server 2008 R2 的时候到最后一步安装进度的时候卡死在Install_BDL_Cpu32_Action 这里,之前安装可以的,然后因为VM的内存不够,我就删除了原来已经装好的VM重新整理好磁盘之后在打开VM就这样了. 1:重装系统无效. 2:换一个版本安装也无效. 3:清理了所有注册表里的文件也无效. 4:百度的方法都试过了,无效!

SQL Server 2008 R2登录失败的解决方法

为大家分享SQL Server 2008 R2登录失败的解决方法 1.启动SQL Server 2008 Management Studio,会看到 2.里面有一个 身份验证.这个 身份验证 的下拉列表里面有两个选项: Windows 身份验证 和 SQL Server 身份验证. 它们有什么区别: Windows 身份验证是指:你可以使用你电脑Windows系统的用户名和密码进行登入.如果你的电脑没有设置密码,那么就不需要输入用户名和密码,直接点击连接就可以登入. 我们一般使用第二种身份验证:

【多图】SQL Server 2000如何向SQL Server 2008 R2推送数据

最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他"服务器"向我们服务器推送的方式实现.我们服务器使用的是sql server 2008 R2,其他"服务器"使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定. [一.配置分发服务器] SQLServer 2000的复制服务包括三个角色:发布服务器.分发服务器和订阅服务器,关系如图1所示.   图1

SQL Server 2000向SQL Server 2008 R2推送数据图文教程_mssql2008

最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他"服务器"向我们服务器推送的方式实现.我们服务器使用的是sql server 2008 R2,其他"服务器"使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定. [一.配置分发服务器] SQLServer 2000的复制服务包括三个角色:发布服务器.分发服务器和订阅服务器,关系如图1所示. 图1 其中

SQL Server中快速删除重复记录的方法

开发人员的噩梦--删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确.解决该问题的办法就是将这些重复的记录删除,只保留其中的一条. 在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录.因为这种方法需要对整个表进行遍历,所以对于表中的记录数不是很大的时候还是可行的,如果一张表的数据达到上百万条,用游标的方法来删除简直是个

SQL Server 2008批量删除及插入的方法

目前的批量删除和批量更新,很是烦人,解决方案无非三种: XML,SQL自定义函数split,和CLR实现split.这几种都比较烦人,代码很多,维护麻烦,很不爽. 现在SQL Server 2008新增的一个功能,我也不知道中文名怎么翻译,暂且叫他表参数吧. 大家可以看看示例: 这个就是用户定义的表类型: 然后给他定义一个类型: Code -- ================================ -- Create User-defined Table Type -- ======

SQL Server 2008 R2数据应用层程序和数据库镜像详解

随着http://www.aliyun.com/zixun/aggregation/11208.html">Microsoft SQL Server 2008 R2即将发布,使得更多的DBA和Visual Studio.Net开发人员更加关注其新增的功能特点.SQL Server 2008 R2提供了主数据服务.数据应用层程序.多服务器管理.Power Pivot for SharePoint .Report Builder 3.0.Stream Insight等众多新功能.在新功能支持下

SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示

原文:SQL Server 2008 R2--使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示 =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的"联系邮箱(wlsandwho@foxmail.com)"联系我 勿用于学术性引用. 勿用于商业出版.商业印刷.商业引用以及其他商业用途.       本文不定期修

sql点滴38—SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同

原文:sql点滴38-SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同 说明:       以前要将一个表中的数据导出为脚本,只有用存储过程.现在在SQL Server 2008中增加了一个新特性,除了导出表的定义外,还支持将表中的数据导出为脚本. 步骤:     右击需要导出数据的数据库,在弹出式菜单中选择"任务"下的"生成脚本"选项      在第二步选择"高级选项"如果不是2008(R2)的选择 &