保留頂部行:在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中文網其他相關文章!