[SQL Server 2005/2008]删除重复行(使用CTE公用表达式)
来源:互联网 发布:最好的编程工具 编辑:程序博客网 时间:2024/05/22 07:59
/* 创建测试数据, 7行中有3行是重复的.*/
CREATE TABLE DuplicateRcordTable (Col1 INT, Col2 INT)
INSERT INTO DuplicateRcordTable
SELECT 1, 1 UNION ALL
SELECT 1, 1 UNION ALL --duplicate
SELECT 1, 1 UNION ALL --duplicate
SELECT 1, 2 UNION ALL
SELECT 1, 2 UNION ALL --duplicate
SELECT 1, 3 UNION ALL
SELECT 1, 4
GO
/* 查询原始数据 */
SELECT * FROM DuplicateRcordTable
/* 创建公用表达式CTE, 按照表中所有字段分组,增加一列行序号 */
WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
/* 根据CTE,删除行序号中>1的行, 即重复的行 */
DELETE FROM CTE WHERE DuplicateCount > 1
GO
/* 查询删除后的结果 */
SELECT * FROM DuplicateRcordTable
GO
drop table DuplicateRcordTable
- [SQL Server 2005/2008]删除重复行(使用CTE公用表达式)
- [SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
- SQL Server 2005中使用公用表表达式的递归查询(CTE是个好东西)
- CTE使用[SQL server 2005]
- SQL Server-- 使用WITH AS提高性能-CTE(使用公用表表达式)
- SQL Server 2005+ 使用 CTE 分割字符串
- SQL SERVER 2005 公用表表达式(CTE)处理递归(父子关系)
- Sql Server 2005+中用公用表表达式(CTE)实现递归查询
- SQL SERVER公用表表达式CTE详解
- 使用公用表表达式(CTE)简化嵌套SQL
- 使用公用表表达式(CTE)简化嵌套SQL
- SQL SERVER删除重复行
- SQL Server删除重复行
- SQL Server 2005中的CTE
- SQL SERVER 2005 中的CTE
- SQL SERVER 2005 中的CTE
- 如何在SQL Server 2005数据库查询中使用CTE
- 使用CET和row_number()删除重复记录 ( sql server 2005)
- js判断IE非IE的几种简短方法
- Chapter 11: Using Menu-Based Controls--PopUpMenuButton control
- 如何从61850中获益
- 開發Android軟體人的一大福音(星光大賞)
- FFMpeg框架代码阅读
- [SQL Server 2005/2008]删除重复行(使用CTE公用表达式)
- Test
- 数据库计算机常用英语词汇名词解释
- UITabBarController和UINavigationBar更换tabBar背景图片
- Web Server 架构浅谈-Simple Event-Driven Achitecture
- 任务状态段和门
- 动态添加GridView,并按照返回内容改变字体颜色
- 怎麼添加javascript提示框
- Myeclipse 8.x实现一个简单SSH框架