0

roll numberOracleテーブルには1つの列しかありません。1つの列にたくさんのデータがあります。

   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

uが使用できる範囲をすでに知っている場合は、削除する総数がわかっている場合は、次のようにINを使用できます。

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