[英]REPLACE In oracle
我需要您对 REPLACE 的帮助(在 Oracle 中。我需要在测试中的一列中替换许多字符,如果我想再次更改 5 和 4,可以将 5 更改为“测试”,你有解决方案吗?
如果你想匹配整个值,我会推荐一个case
表达式,它可以很容易地扩展。
假设您要将4
和5
都转码为“TEST”:
case when resource_state_key in (4, 5) then 'TEST' end as val
或者,如果您想要不同的值:
case resource_state_key
when 4 then 'TEST'
when 5 then 'TEST2'
end as val
在 Oracle 中,后者也可以用供应商特定的 function decode()
表示:
decode(resource_state_key, 4, 'TEST', 5, 'TEST2') as val
我不认为你想做什么作为字符串操作。 相反,您似乎想在参考表中查找一个值。 您应该在数据库中有一个“资源状态”参考表。
如果您在数据库中没有一个,您可以在查询中生成一个:
with resource_state_ref as (
select 4 as resource_state_key, 'TEST' as val union all
select 5 as resource_state_key, 'TEST' as val
)
select ref.val, t.*
from t left join
resource_state_ref ref
on t.resource_state_key = ref.resource_state_key
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.