首页 >数据库 >mysql教程 >如何从 SQL 数据库表中删除除前 N 行之外的所有行?

如何从 SQL 数据库表中删除除前 N 行之外的所有行?

Susan Sarandon
Susan Sarandon原创
2024-12-29 04:22:09806浏览

How to Delete All but the Top N Rows from a SQL Database Table?

从数据库表中删除除前 n 行以外的所有行的 SQL 查询

在许多情况下,有必要从数据库表中删除所有数据数据库表(前 n 行除外)。此操作需要精心设计的查询,以确保只保留所需的行数。

推荐方法:

删除除顶部之外的所有行的最有效方法SQL 中表中的 n 行是执行一个查询,选择所需的行,然后使用 DELETE 语句删除剩余的行。以下查询模板演示了这种方法:

DELETE FROM TableName WHERE ID NOT IN (
    SELECT DISTINCT TOP n ID
    FROM TableName
    ORDER BY ID
)

优点:

  • 此方法确保仅前 n 行保留在表中。
  • 实现起来比较简单,可以执行

示例:

考虑一个名为“Sales”的表,其中包含以下数据:

ID Name Amount
1 John 100
2 Mary 200
3 Bob 300
4 Ann 400

删除除该表的前 2 行,我们将使用以下内容查询:

DELETE FROM Sales WHERE ID NOT IN (
    SELECT DISTINCT TOP 2 ID
    FROM Sales
    ORDER BY ID
)

执行此查询后,“Sales”表将仅包含以下行:

ID Name Amount
1 John 100
2 Mary 200

以上是如何从 SQL 数据库表中删除除前 N 行之外的所有行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn