最后一个位置的字符只被替换-配置单元

amrnrhlw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(387)

我有一种情况,基于某些条件,我只想替换配置单元中列中的最后一个字符。我的代码如下:,

select 
case 
    when amtsv111 >= 0 then 
    case 
        when substring(amtsv111,-1,1) = '0' then regexp_replace(amtsv111,substring(amtsv111,-1,1),'{')
        when substring(amtsv111,-1,1) = '1' then regexp_replace(amtsv111,substring(amtsv111,-1,1),'A')
        end

对于这个代码,我得到的结果是:

15101    A5A0A

鉴于我希望结果如下:

15101    1510A

有人能帮我做同样的事吗?

zynd9foi

zynd9foi1#

你可以这样做:

select (case when amtsv111 like '%0' then concat(substring(amtsv111, 1, length(amtsv111) - 1), '{'
             when amtsv111 like '%1' then concat(substring(amtsv111, 1, length(amtsv111) - 1), 'A'
             else amtsv111
        end)

相关问题