加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长百科 > 正文

Oracle – 是否可以在更新期间在case语句中“设置”值,如下所示

发布时间:2021-04-04 04:05:05 所属栏目:站长百科 来源:网络整理
导读:是否可以在更新期间在case语句中“设置”值,如下所示? UPDATE TABLE1 CASE WHEN COL1 = 'A' THEN SET COL2 = 10,COL3 = 20,COL4 = 30 WHEN COL1 IN ('B','N') THEN SET COL2 = 1,COL3 = 5,COL4 = 7 WHEN COL1 = 'D' THEN SET COL2 = 11,COL3 = 13,COL4 = 17

是否可以在更新期间在case语句中“设置”值,如下所示?

UPDATE TABLE1
  CASE WHEN COL1 = 'A' THEN SET COL2 = 10,COL3 = 20,COL4 = 30
       WHEN COL1 IN ('B','N') THEN SET COL2 = 1,COL3 = 5,COL4 = 7
       WHEN COL1 = 'D' THEN SET COL2 = 11,COL3 = 13,COL4 = 17
       ELSE SET COL2 = 0,COL3 = 0,COL4 = 0
  END;

解决方法

相应的有效语法将是这样的.

UPDATE TABLE1 SET
  COL2 = (CASE WHEN COL1 = 'A' THEN 10
               WHEN COL1 IN ('B','N') THEN 1
               WHEN COL1 = 'D' THEN 11
               ELSE 0
          END),COL3 = (CASE WHEN COL1 = 'A' THEN 20
               WHEN COL1 IN ('B','N') THEN 5
               WHEN COL1 = 'D' THEN 13
               ELSE 0
          END),COL4 = (CASE WHEN COL1 = 'A' THEN 30
               WHEN COL1 IN ('B','N') THEN 7
               WHEN COL1 = 'D' THEN 17
               ELSE 0
          END);

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读