Sql server 删除除最新记录之外的所有记录
我有一个包含CreatedOn字段的表 除了最新的100万条记录(最新的基于CreatedOn),我如何删除所有记录 感谢诸位Sql server 删除除最新记录之外的所有记录,sql-server,Sql Server,我有一个包含CreatedOn字段的表 除了最新的100万条记录(最新的基于CreatedOn),我如何删除所有记录 感谢诸位 SELECT TOP 1 y.CreatedOn FROM (SELECT TOP 1000000 x.CreatedOn FROM MyTable AS x ORDER By x.CreatedOn DESC) AS y ORDER BY y
SELECT TOP 1 y.CreatedOn FROM (SELECT TOP 1000000 x.CreatedOn
FROM MyTable AS x
ORDER By x.CreatedOn DESC) AS y
ORDER BY y.CreatedOn ASC
您将获得第一百万条记录的CreatedOn
日期
现在删除所有具有小于此值的CreatedOn
,例如
SELECT TOP 1 y.CreatedOn FROM (SELECT TOP 1000000 x.CreatedOn
FROM MyTable AS x
ORDER By x.CreatedOn DESC) AS y
ORDER BY y.CreatedOn ASC
您将获得第一百万条记录的CreatedOn
日期
现在删除所有小于此值的
CreatedOn
有多种方法可以实现这一点。请尝试以下不言自明的查询:
DELETE FROM tableName where PrimaryKeyColumn NOT IN (SELECT TOP 1000000 PrimaryKeyColumn FROM tableName ORDER BY CreatedOn DESC)
实现这一点有多种方法。请尝试以下不言自明的查询:
DELETE FROM tableName where PrimaryKeyColumn NOT IN (SELECT TOP 1000000 PrimaryKeyColumn FROM tableName ORDER BY CreatedOn DESC)
如果在CreatedOn Desc之后的行_编号中添加另一个字段,则可以更好地控制如何处理领带
如果在CreatedOn Desc之后的行编号中添加另一个字段,您可以更好地控制如何处理领带。太好了,什么阻止了您?这个问题仍然存在吗?你需要进一步的帮助吗?请注意,大多数回答SO问题的专业人士都渴望获得声誉积分。如果你也能看看你以前的问题,那就太好了。谢谢!太好了,是什么阻止了你?这个问题还有待解决吗?你需要进一步的帮助吗?请注意,大多数回答SO问题的专业人士都渴望获得声誉积分。如果你也能看看你以前的问题,那就太好了。谢谢!如果
CreatedOn
不是唯一的,您可能会考虑TOP。。。带领带
。否则,这可能会导致(可能不重要的)随机behvaiour+我的side@ben,如果您发现此答案有帮助,请将其标记为答案并向上投票:)如果CreatedOn
不是唯一的,您可能会考虑TOP。。。带领带
。否则,这可能会导致(可能不重要的)随机behvaiour+我的side@ben,如果您觉得此答案有帮助,请将其标记为答案并投票:)