Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle表中的sql查询_Sql_Database_Oracle - Fatal编程技术网

oracle表中的sql查询

oracle表中的sql查询,sql,database,oracle,Sql,Database,Oracle,我的oracle表中只有一列卷号。一列中包含大量数据 roll number ------------- 1 2 3 4 5 . . . 当我想从该表中删除一些卷号时,我写下: delete from table name where roll number='2'; // 1 row deleted. 如果我想从表中删除5,那么 delete from table name

我的oracle表中只有一列
卷号
。一列中包含大量数据

   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条这样的记录时,我必须替换
卷号
字段,这相当耗时。
有什么快速方法可以从表中删除选定的行吗?

如果要删除的ID是连续的,您可以使用
之间的

DELETE FROM your_table WHERE roll_number BETWEEN 5 AND 104
如果没有,您可以在
中使用

DELETE FROM your_table WHERE roll_number IN (5, 9, 110, ... )

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

delete from table name where roll number IN (select roll number from table WHERE somecondition);

如果你已经知道你可以在之间使用的范围,或者如果你知道要删除的总数,那么你可以在中使用,比如

delete from table where roll number BETWEEN ....;

您可以在delete语句中使用或。你能解释一下你真正想要达到的目标吗?+1。如果这些是真正的数字,我会丢失引号(我知道原来的问题也有引号,但是如果数据真的在文本列中,那么中间的引号就不会起作用了)。+1但是你的例子有点奇怪。您可以只做
从表中删除某个条件。是的,但可能他可以从另一个表中获得感兴趣的ID,这只是一个例子,我不知道整个数据库的关系。。。