如何从四个中的任何两个中删除相同的数据

时间:2016-04-14 03:13:36

标签: sql-server

我有四对相同的数据。

我只想删除其中一个,其余两个是保留的。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

- 如果我理解正确,您正试图从表中删除重复项。执行此操作的最佳方法是使用cte(公用表表达式)。这是一个例子,我希望你可以根据自己的需要进行调整。

IF OBJECT_ID('tempdb..#TEMP') IS NOT NULL DROP TABLE #TEMP

CREATE TABLE #TEMP ( ID INT IDENTITY(1,1),SOMEVALUE VARCHAR(255) )
INSERT INTO #TEMP ( SOMEVALUE )
VALUES ('VALUE1')
,('VALUE2')
,('VALUE2')
,('VALUE3')
,('VALUE4')
,('VALUE4')
,('VALUE4')
,('VALUE4')
,('VALUE5')
,('VALUE6')
,('VALUE6')
,('VALUE6')
,('VALUE7')
,('VALUE8')
,('VALUE8')
,('VALUE9')
,('VALUE10')

;WITH dedup
AS
( 
SELECT *, ROW_NUMBER() OVER (PARTITION BY SOMEVALUE ORDER BY ID ASC) AS SEQUENCE
FROM #TEMP
)
DELETE
FROM dedup
WHERE SEQUENCE > 1
GO

SELECT * FROM #TEMP