oracle表中的sql查询
我的oracle表中只有一列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
卷号
。一列中包含大量数据
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,这只是一个例子,我不知道整个数据库的关系。。。