-- -- 删除base里冗余的数据
--UPDATE dbo.N_Order_ServiceLog SET IsDel = 1 WHERE OrderId IN (
SELECT OrderId FROM(
SELECT ROW_NUMBER() OVER(PARTITION BY bs.Phone,sl.Companyid ORDER BY sl.id desc) AS cindex,
bs.Phone,sl.* FROM dbo.TableXXXXX bs
LEFT JOIN TableLLLLL sl
ON sl.OrderId = bs.OrderId
WHERE bs.OrderType = 12 AND bs.CreateTime>'2018-04-25 10:29:00'
) a WHERE a.cindex>1
)
根据门店分组标记序号
SELECT ROW_NUMBER() OVER(PARTITION BY bs.Phone,sl.Companyid ORDER BY sl.id desc) AS cindex,
bs.Phone,sl.* FROM TableXXXXX bs
LEFT JOIN TableLLLLL sl
ON sl.OrderId = bs.OrderId
WHERE bs.OrderType = 12 AND bs.CreateTime>'2018-04-25 10:29:00'
本文介绍了一种使用SQL语句来清理数据库中冗余数据的方法,特别关注于通过复杂查询来标识并更新重复记录,确保数据的准确性和效率。通过示例展示了如何基于特定条件(如电话号码和公司ID)进行数据分组,并标记多余的记录以便后续删除。
2308

被折叠的 条评论
为什么被折叠?



