带有WHERE In子句的SQL Update语句

时间:2014-02-28 22:11:06

标签: sql oracle

我在SQL语句

中的条件有多长
update ABC_table 
set XXX_column = 10
where YYY_column in ('00-0093149',
... upto 700 values)

在Oracle中有更好的方法吗?也许类似于Extra Long Where/In Statement - Better option?

不使用excel?

由于

1 个答案:

答案 0 :(得分:0)

嗯,你说这些值来自数据库,同一个表的列

然后您可以从

更改查询
update ABC_table 
set XXX_column = 10
where YYY_column in ('00-0093149',
... upto 700 values)

update ABC_table abcout
set XXX_column = 10
where exists (select null
              from ABC_table abcin -- the same table
              where abcout.YYY_column = abcin.COLUMN_FOR_THE_SAME_TABLE
                /* and maybe some more restrictions here */);

其中COLUMN_FOR_THE_SAME_TABLE是包含值的列。