2014-01-09 60 views

回答

0
DELETE FROM someTable 
WHERE myPrimaryKey in (5, 6, 7) 

換句話說:您不能僅僅告訴DBMS從表中刪除「第5條記錄」。您將必須構建一個where子句,該子句完全匹配您要刪除的那些行。

當你考慮它時,這是有道理的,因爲DBMS不保證表中記錄的任何內部順序,也就是說,它沒有關於第n條記錄的內在概念。

0

默認情況下,表格沒有預定的順序,所以您必須定義刪除5-7行的順序。您可以嘗試使用ROW_NUMBER()來定義表格中的順序來計算行數。舉例來說,如果你有一個主鍵ID您可以通過此列順序:

WITH T1 AS 
(
SELECT T.*, 
     ROW_NUMBER() OVER (ORDER BY ID) as RowNum 
     FROM T 
) 

DELETE FROM T1 WHERE RowNum between 5 and 7 

SQLFiddle demo