0

我的 oracle 表中只有一列roll number。一列中有很多数据。

   roll number  

  -------------

      1 
      2
      3
      4
      5
      .
      .
      .

当我想从这个表中删除一些卷号时,我正在写:

delete from table name where roll number='2'; // 1 row deleted.

如果我想5从表中删除然后

delete from table name where roll number='5'; // 1 row deleted.   

同样,当我想删除 100 条这样的记录时,我必须替换roll number字段,这需要相当长的时间。有什么快速方法可以从表中删除选择性行吗?

4

3 回答 3

7

如果要删除的 id 是连续的,您可以使用BETWEEN

DELETE FROM your_table WHERE roll_number BETWEEN 5 AND 104

如果没有,您可以使用IN

DELETE FROM your_table WHERE roll_number IN (5, 9, 110, ... )
于 2012-04-28T09:42:15.997 回答
1

您可以从另一个查询中获取数字列表并将其置于 IN 条件中,例如:

delete from table name where roll number IN (select roll number from table WHERE somecondition);
于 2012-04-28T09:43:31.980 回答
0

如果您已经知道可以使用的范围,否则如果您知道要删除的总数,那么您可以使用IN之类的......

delete from table where roll number BETWEEN ....;
于 2012-04-28T09:47:08.167 回答