我有四对相同的数据。
我只想删除其中一个,其余两个是保留的。
有人可以帮助我吗?
答案 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