首页 >数据库 >mysql教程 >如何只保留 SQL 数据库表中的前 N ​​行?

如何只保留 SQL 数据库表中的前 N ​​行?

Patricia Arquette
Patricia Arquette原创
2024-12-31 15:25:17721浏览

How to Keep Only the Top N Rows in a SQL Database Table?

保留顶部行:在 SQL 中从数据库表中删除除 n 之外的所有行

当面临修剪表中的任务时在数据库中,需要只保留顶部指定数量 (n) 的行,同时消除其余行。为了有效地实现这一点,SQL 提供了一个简单的解决方案。

DELETE 语句可用于删除除前 n 行之外的所有行。语法如下:

DELETE FROM TableName WHERE RowID NOT IN (SELECT TOP n RowID FROM TableName)

此查询从 TableName 表中选择所有行,不包括子查询中出现的行。子查询从表中检索前 n 个 RowID。

示例:

考虑一个名为“Customers”的表,其中包含“CustomerID”和“CustomerName”等列。要根据“CustomerID”删除除前 10 位客户之外的所有客户,可以使用以下查询:

DELETE FROM Customers WHERE CustomerID NOT IN (SELECT TOP 10 CustomerID FROM Customers)

注意:

Chris 敏锐地观察到,在子查询中使用 TOP 子句的缺点是其潜在的性能影响。对于一次性操作,这可能不是一个大问题,但对于频繁使用,应考虑替代方法。

以上是如何只保留 SQL 数据库表中的前 N ​​行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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