oracle - 更新同一列中的多个值

标签 oracle oracle-sqldeveloper

我有一个名为 Movie_Stars 的数据表。我想更新多个值,但它们都在同一列中。这是我所拥有的:

update movie_stars
set movie_category = 'Family'
where movie_category = 'Drama'
and set movie_category = 'Children'
where movie_category = 'Cartoon'
and set movie_category = 'Teen'
where movie_category = 'Action';

但这会生成错误“无效的 user.table.column、table.column 或列规范”。那么什么是正确的色谱柱规范呢?

最佳答案

使用CASE表达式:

update movie_stars
set movie_category = case when movie_category = 'Drama'
                          then 'Family'
                          when movie_category = 'Cartoon'
                          then 'Children'
                          when movie_category = 'Action'
                          then 'Teen'
                     end
where movie_category in ('Drama', 'Cartoon', 'Action')

关于oracle - 更新同一列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40835603/

相关文章:

java - 是否可以使用 jpa 的 sql Developer 检索自动递增的字段

sql - 如何在 Bash 脚本中运行 SQL 命令并将该命令的输出保存到变量

sql - ORA-01779 无法修改映射到非键保留表的列

database - Oracle 查询优化器的诊断输出

oracle - SQLDeveloper 是否有像 Toad 这样复制/克隆用户的工具?

sql - PL/SQL -- 变量 "must be a type"编译错误

mysql - 从oracle导出大数据

sql - 无法确定 "column ambiguously defined"错误的原因

SQL - MIN 和 COUNT 的组合

database - 此警告意味着什么 `Required tables DBMSHP_FUNCTION_INFO,DBMSHP_PARENT_CHILD_INFO,DBMSHP_RUNS missing`