2017-12-26 16 views
0

特定の条件に基づいて、ハイブの列の最後の文字だけを置きたい状況があります。 次のように私のコードは、このコードのためので、最後の位置にあるキャラクターは、置き換えられるだけです。 - 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 

誰かが助けてください私と同じ?

答えて

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) 
+0

を...知ってはいけない...ありがとうございました!!! –

関連する問題