我想删除重复的记录而不使用ROW_NUMBER()函数(SQL Server)
示例:具有以下数据的表:
name salary
-----------------
Husain 20000.00
Husain 20000.00
Husain 20000.00
Munavvar 50000.00
Munavvar 50000.00
删除重复记录表后,应包含如下数据:
name salary
-----------------
Husain 20000.00
Munavvar 50000.00
由于此问题的动机似乎是学术兴趣而不是实际用途...
该表没有主键,但未记录的伪列%%physloc%%
可以提供替代。
DELETE T1
FROM YourTable T1 WITH(TABLOCKX)
WHERE CAST(T1.%%physloc%% AS BIGINT)
NOT IN (SELECT MAX(CAST(%%physloc%% AS BIGINT))
FROM YourTable
GROUP BY Name, Salary)
在现实中,你不应该使用上述和只使用row_number
,因为它是更有效和记录。
(数据浏览器演示)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句