更新查询字段条件Case或IF

时间:2018-06-21 16:43:32

标签: sql oracle

我的表中有一个名为Job Category的字段,我想使用IfCase语句将job_category中的“ Leader”的名称更改为“ Senior Producer” ”,然后创建一个名为Job_category_New的新字段。我该怎么做?谢谢。

示例:

update 'leader' category to 'senior producer'
case C.JOB_CATEGORY_1
     when C.JOB_CATEGORY_1 in ('Leader') then 'Senior Producer'
     else C.JOB_CATEGORY_1 as Job_Category_New 

KW

1 个答案:

答案 0 :(得分:1)

这还不清楚;无论如何,我设法理解了两个选择。

如果JOB_CATEGORY列的当前值为“ leader”,则第一个将其更新为“ senior producer”。它使其他所有内容保持不变。另外,您可以使用ALTER TABLE向表中添加新列。

update your_table set
  job_category = 'senior producer'
where job_category = 'leader';

alter table your_table add job_category_new varchar2(20);

第二个假设该列已包含JOB_CATEGORY_NEW列并更新两个列:

  • job_category对于所有“领导者”均设置为“高级生产者”,对于其他所有事物均设置为NULL
  • job_category_new设置为当前job_category列的值,“ leaders”除外(当它保持为NULL时)

update your_table set
  job_category     = decode(job_category, 'leader', 'senior producer', null),
  job_category_new = decode(job_category, 'leader', null, job_category);

查看是否有帮助。如果没有,请尝试再次解释,提供更多详细信息和示例。