数码资讯
删除表中的复制方法
SQL Server 2005的新功能,now_number和热膨胀系数,可以实现。 例子如下: 设置测试数据: 复制代码代码如下所示: 创建表dup1 ( 2国际空, COL2 varchar(20)空 ) 插入dup1值 (1,'AAA'), (2,'AAA'), (2,'AAA'), (2,'
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
SQL Server 2005的新功能,now_number和热膨胀系数,可以实现。
例子如下:
设置测试数据:
复制代码代码如下所示:
创建表dup1
(
2国际空,
COL2 varchar(20)空
)
插入dup1值
(1,'AAA'),
(2,'AAA'),
(2,'AAA'),
(2,'AAA'),
(3,{BBB}),
(3,{BBB}),
(4,CCC),
(4,'ddd),
(5,'eee)
SELECT * FROM dup1
你可以看到重复的数据是:
复制代码代码如下所示:
SELECT col1,col2,计数(*)是由dupcountfrom dup1group col1,col2having计数(*)> 1
下一步是介绍如何删除重复数据:
1。now_number:SQL Server 2005增加了排行榜功能,是非常有用的(now_number,等级,dense_rank,ntile),使用now_number()在(分区Gy)是最直接、最方便的,不能修改表或产生冗余列。
首先,列数指定要排序col1和col2组合。
复制代码代码如下所示:
选择COL1,COL2,row_number()在(分区的col1,col2执行顺序)
序号的数目如下所示:
很明显,重复列被分成组,只需要删除就可以删除序列号> 1。
复制代码代码如下所示:
使用热膨胀系数
与dupsd
(如
SELECT col1,col2,
row_number()在(分区col1,col2为RN的col1)
从dup1
)
删除dupsd
RN>1;
或
删除(从
SELECT col1,col2,
row_number()在(分区col1,col2为RN的col1)
从一个地方dup1 a.rn > 1)
2。创建一个唯一的令牌标识一个键列。
复制代码代码如下所示:
修改表dbo.dup1
添加
PK国际认同
不为空
pk_dup1主键约束;
*选择
从dup1;
删除记录是col1,col2相同,大于dup1.pk,即保持最小的PK中的重复值。
复制代码代码如下所示:
DELETE Dup1
存在(选择*)
从dup1 D1
在d1.col1 = dup1.col1
和d1.col2 = dup1.col2
和d1.pk > dup1 PK);
3.select远为,采用了一种新的表格将不重复的结果集到新表。
复制代码代码如下所示:
选择不同的col1,col2为nodupsfrom dup1;选择*从nodups
建议采用第一种和第三种方法。首先是更常见的在T-SQL编程,和第三是常用的ETL。
例子如下:
设置测试数据:
复制代码代码如下所示:
创建表dup1
(
2国际空,
COL2 varchar(20)空
)
插入dup1值
(1,'AAA'),
(2,'AAA'),
(2,'AAA'),
(2,'AAA'),
(3,{BBB}),
(3,{BBB}),
(4,CCC),
(4,'ddd),
(5,'eee)
SELECT * FROM dup1
你可以看到重复的数据是:
复制代码代码如下所示:
SELECT col1,col2,计数(*)是由dupcountfrom dup1group col1,col2having计数(*)> 1
下一步是介绍如何删除重复数据:
1。now_number:SQL Server 2005增加了排行榜功能,是非常有用的(now_number,等级,dense_rank,ntile),使用now_number()在(分区Gy)是最直接、最方便的,不能修改表或产生冗余列。
首先,列数指定要排序col1和col2组合。
复制代码代码如下所示:
选择COL1,COL2,row_number()在(分区的col1,col2执行顺序)
序号的数目如下所示:
很明显,重复列被分成组,只需要删除就可以删除序列号> 1。
复制代码代码如下所示:
使用热膨胀系数
与dupsd
(如
SELECT col1,col2,
row_number()在(分区col1,col2为RN的col1)
从dup1
)
删除dupsd
RN>1;
或
删除(从
SELECT col1,col2,
row_number()在(分区col1,col2为RN的col1)
从一个地方dup1 a.rn > 1)
2。创建一个唯一的令牌标识一个键列。
复制代码代码如下所示:
修改表dbo.dup1
添加
PK国际认同
不为空
pk_dup1主键约束;
*选择
从dup1;
删除记录是col1,col2相同,大于dup1.pk,即保持最小的PK中的重复值。
复制代码代码如下所示:
DELETE Dup1
存在(选择*)
从dup1 D1
在d1.col1 = dup1.col1
和d1.col2 = dup1.col2
和d1.pk > dup1 PK);
3.select远为,采用了一种新的表格将不重复的结果集到新表。
复制代码代码如下所示:
选择不同的col1,col2为nodupsfrom dup1;选择*从nodups
建议采用第一种和第三种方法。首先是更常见的在T-SQL编程,和第三是常用的ETL。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。