最后位置的角色只能被替换 - Hive

时间:2017-12-26 19:29:52

标签: sql hadoop hive hiveql

我有一种情况,我想根据某些条件只替换hive中列中的最后一个字符。 我的代码如下,

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

有人可以帮我一样吗?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

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)