我想在不使用 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)
实际上你不应该使用上面的和 just use row_number
因为它更有效率和文档。( Data Explorer Demo )
关于sql - 不使用 ROW_NUMBER() 函数删除重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37560593/