如何在没有时间戳的情况下从最旧的最新记录中删除重复的记录,而将myfile.jsx
删除为GUID
?
据我所知
Primary Key
但这不能满足我的要求,尽管可以正确删除重复项。有办法吗?还是无法使用WITH cte
AS(SELECT ID, ROW_NUMBER() OVER(PARTITION BY CodeOne, CodeTwo
ORDER BY(SELECT 0)) RN
FROM [InvoiceDatabase].[dbo].[LookUpCode])
DELETE FROM cte
WHERE RN > 1;
来判断哪个记录更旧?
答案 0 :(得分:2)
如果要删除重复的记录但没有时间戳和GUID作为主键,则可以尝试使用%%physloc%%
。
%%physloc%%
是一个虚拟列。此列未记录。因此,使用它需要您自担风险。
WITH cte
AS(SELECT ID, ROW_NUMBER() OVER(PARTITION BY CodeOne, CodeTwo
ORDER BY %%physloc%%) RN
FROM [InvoiceDatabase].[dbo].[LookUpCode])
DELETE FROM cte
WHERE RN > 1;
注意
但是我建议您为订单创建一个时间戳。