首頁 >資料庫 >mysql教程 >如何只保留 SQL 資料庫表中的前 N ​​行?

如何只保留 SQL 資料庫表中的前 N ​​行?

Patricia Arquette
Patricia Arquette原創
2024-12-31 15:25:17711瀏覽

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