SqlServer: 删除重复数据

USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL
	DROP TABLE t
GO
CREATE TABLE t(
	id INT,
	[name] NVARCHAR(10)	
)
GO
SET NOCOUNT ON
INSERT INTO t VALUES(1,'a')
INSERT INTO t VALUES(1,'a')
INSERT INTO t VALUES(2,'b')
INSERT INTO t VALUES(2,'b')
INSERT INTO t VALUES(3,'c')
--
SELECT * FROM t
/*
id	name
1	a
1	a
2	b
2	b
3	c
*/
--------- 以上为测试表及测试数据 ------------


;WITH cte AS(
	SELECT row_number() OVER (PARTITION BY id,[name] ORDER BY (SELECT 1)) AS rid,* FROM t	
)
--SELECT * FROM cte WHERE rid=1  --需要保留的数据
DELETE FROM cte WHERE rid>1

SELECT * FROM t
/*
id	name
1	a
2	b
3	c
*/

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值