Oracle 使用多个 WHERE 子句更新单个表

标签 oracle

刚刚在我们的 11g 中进行了一些数据迁移,发现了一种情况,在这种情况下,我通常只创建几个单独的 UPDATE 脚本并开始思考。有没有办法在同一个脚本中使用不同的 WHERE 子句进行多次更新?

我的意思是代替

UPDATE table1 SET value1=X WHERE value1=A;
UPDATE table1 SET value1=Y WHERE value1=B;
UPDATE table1 SET value1=Z WHERE value1=C;

你能不能做点更近的事

UPDATE table1 SET value1=X WHERE value1=A,SET value1=Y WHERE value1=B, SET value1=Z WHERE value1=Z;

显然上面的语法是错误的,但这就是我的观点。可以做这样的事情,还是只需要做三个单独的脚本?

提前致谢

KS

最佳答案

UPDATE table1 SET value1 = CASE
           WHEN value1=A THEN X
           WHEN value1=B THEN Y ELSE XYZ
        END;

关于Oracle 使用多个 WHERE 子句更新单个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19422856/

相关文章:

sql - 如何将具有重复值的行转换为列?

sql - 汇总重叠段以测量有效长度

SQL Oracle Timestamp - 两列之间的算术

sql - 如何为动态搜索字符串创建索引

oracle - 为什么我不能使用 SQLcl 通过 jdbc 连接

oracle - 在存储过程中使用 revoke 时出现错误 PLS-00103

oracle - 如何使用to_sql将pandas数据帧写入oracle数据库?

database - session 中所有查询的 Oracle 中 NULL 值的排序顺序

java - jpa插入行时应返回用于主键列的序列号

oracle 数据库 AUDIT 不显示 SQL 文本和绑定(bind)值