所以我想删除重复的行而不只是查找它 我当前的代码只能让我知道必须删除哪些ROWS。 但是我很困惑如何从目标表中“删除”它们。 有什么建议吗?
WITH tmp AS
(
SELECT
Code
,ROW_NUMBER() OVER(PARTITION BY Code ORDER BY Code) AS ROWNUMBER
FROM CouponCode
)
SELECT *
FROM tmp
WHERE ROWNUMBER > 1
答案 0 :(得分:2)
基本上,您只需将select
更改为delete
WITH tmp AS (
SELECT Code, ROW_NUMBER() OVER(PARTITION BY Code ORDER BY Code) AS ROWNUMBER
FROM CouponCode
)
DELETE tmp
WHERE ROWNUMBER > 1;
答案 1 :(得分:2)
第1步:
在临时表中选择不同的行:
SELECT DISTINCT Code, ExpiredDate
INTO temp_CouponCode
FROM CouponCode
第2步:
空原始表:
truncate table CouponCode
第3步:
从临时表中复制数据:
INSERT INTO CouponCode
SELECT Code, ExpiredDate
FROM temp_CouponCode
第4步:
删除临时表:
DROP TABLE temp_CouponCode