S. *_*vin 0 sql sql-server sql-server-2017
使用SQL Server Management Studio 2017.我导入了大约2000万封电子邮件的列表,只需运行以下代码即可删除任何重复项:
WITH CTE AS
(
SELECT *,ROW_NUMBER() OVER (PARTITION BY email ORDER BY email) AS RN
FROM dbo.cleanemails
)
DELETE FROM CTE WHERE RN<>1
Run Code Online (Sandbox Code Playgroud)
它表示Query已成功执行,并在Messages选项卡下显示受影响的1000万行(预期),但没有结果选项卡.我想导出到csv文件.我检查执行设置,因为Parseonly和Noexec设置有时会导致问题,但它们都是OFF.
如果要查看已删除的记录,则可以使用OUTPUT子句
;WITH CTE
AS (SELECT *,
Row_number()OVER (PARTITION BY email
ORDER BY email) AS RN
FROM dbo.cleanemails)
DELETE FROM CTE
output deleted.*
WHERE RN <> 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |