【发布时间】:2018-11-27 06:40:23
【问题描述】:
我有两种帐号,它们都是字符串:
其中一些有leading zeros,另一些已正确导入且没有前导零;
如何在不修剪正常帐号的情况下去掉前导零?
前导零的有点:
0000012345678
没有前导零的是:
1345678
如何在 Impala 中做到这一点而不修剪所有帐号?据我所见,在那些带有前导零的记录中总是有 5 个前导零。
【问题讨论】:
我有两种帐号,它们都是字符串:
其中一些有leading zeros,另一些已正确导入且没有前导零;
如何在不修剪正常帐号的情况下去掉前导零?
前导零的有点:
0000012345678
没有前导零的是:
1345678
如何在 Impala 中做到这一点而不修剪所有帐号?据我所见,在那些带有前导零的记录中总是有 5 个前导零。
【问题讨论】:
试试这个:
SELECT CAST( "0000012345678" AS INT);
或
SELECT regexp_replace( "0000012345678","^0+(?!$)","")
【讨论】:
尝试使用REGEXP_REPLACE:
SELECT REGEXP_REPLACE('0000012345678', '^0*', '') AS number_out
FROM yourTable;
【讨论】:
你可以使用substr()
select case when left(accountno)='00000' then substr(accountno,6,length(accountno)-5)
else accountno end
from yourtablename
【讨论】: