删除SQL中第一条记录以外的重复记录
问题描述:
我想删除除第一条记录以外的所有重复记录。删除SQL中第一条记录以外的重复记录
像:
NAME
R
R
rajesh
YOGESH
YOGESH
现在,在上面我想删除第二个“R”,第二个“约杰什”。
我只有一个名字是“NAME”的列。
答
使用CTE(我有几个的,这些在生产中)。
;WITH duplicateRemoval as (
SELECT
[name]
,ROW_NUMBER() OVER(PARTITION BY [name] ORDER BY [name]) ranked
from #myTable
ORDER BY name
)
DELETE
FROM duplicateRemoval
WHERE ranked > 1;
说明:该CTE将抓住所有的记录和申请行号为每个独特的条目。每个附加条目都会得到一个递增的数字。将DELETE
替换为SELECT *
以查看它的功能。
答
似乎是一个简单distinct
修改会做的伎俩:
SELECT DISTINCT name
FROM mytable
删除或选择唯一值? –
删除重复但只有第一个除外。 –
如果他们是一样的,你会如何知道它是否是第一个?它真的很重要吗?而且由于你只有1列,所以没有第一个,因为表是无序集。 –