如何在Oracle SQL中结合CASE WHEN与SUBSTR按规则更新Name列?
条件更新Tech_table的Name列
要实现仅当Category符合%-%-%格式时更新Name列,其余情况保留原值,可以结合CASE WHEN和字符串函数编写UPDATE语句:
UPDATE Tech_table SET Name = CASE WHEN INSTR(Category, '-', 1, 2) > 0 THEN SUBSTR(Category, INSTR(Category, '-', 1, 2) + 1) ELSE Name END;
逻辑说明
INSTR(Category, '-', 1, 2):该函数返回Category中第2个-的位置,若不存在第2个-则返回0;- 当返回值大于0时,判定
Category符合%-%-%格式,此时用SUBSTR截取第2个-之后的内容替换Name; - 不满足条件时,
Name保持原有值不变。
内容的提问来源于stack exchange,提问作者R Sem
相关产品推荐
相关产品推荐

