小编bd3*_*d33的帖子

使用文本数据类型时删除重复记录

我有一个存储电子邮件的大表(约 678,000 行),我需要删除与电子邮件字段匹配的重复记录:收件人、发件人、主题、正文以及外键 record_id。

通常我会使用以下语句来删除重复项:

DELETE
FROM emails
WHERE email_id NOT IN (
SELECT MAX(email_id) FROM emails
GROUP BY record_id, from_add, to_add, subject, body)
Run Code Online (Sandbox Code Playgroud)

但是, body 是 datatype text,因此无法比较/分组。它在选择查询上给出以下错误消息:

The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.
Run Code Online (Sandbox Code Playgroud)

text数据类型识别重复项的最佳方法是什么?我是否必须varchar先将列转换为?

sql-server-2005

6
推荐指数
1
解决办法
2298
查看次数

标签 统计

sql-server-2005 ×1