我有一个相当大的50000条记录表,我想将其减少到5000.如何编写SQL查询来删除其他45000条记录.基本表结构包含日期时间的列.
我想要的查询的大致想法如下
DELETE FROM mytable WHERE countexceeded(5000) ORDER BY filedate DESC;
Run Code Online (Sandbox Code Playgroud)
我可以用C#编写这个,以某种方式抓住行索引号并做一些解决方法,但有没有一个整洁的方法来做到这一点?
您接受的答案不是有效的语法,因为DELETE不允许使用ORDER BY子句.您可以使用
;WITH T AS
(
SELECT TOP 45000 *
FROM mytable
ORDER BY filedate
)
DELETE FROM T
Run Code Online (Sandbox Code Playgroud)