我有两种帐号,它们都是字符串:有些是字符串 leading zeros ,其他已正确导入且没有前导零;我怎样才能去掉前导零而不删减正常的帐号呢?带前导零的有点: 0000012345678 没有前导零的是: 1345678 我怎么能在 Impala 里做到这一点而不删减所有的帐号呢?据我所见,这些记录中总是有5个前导零。
leading zeros
0000012345678
1345678
gjmwrych1#
试试这个:
SELECT CAST( "0000012345678" AS INT);
或
SELECT regexp_replace( "0000012345678","^0+(?!$)","")
rks48beu2#
尝试使用 REGEXP_REPLACE :
REGEXP_REPLACE
SELECT REGEXP_REPLACE('0000012345678', '^0*', '') AS number_outFROM yourTable;
SELECT REGEXP_REPLACE('0000012345678', '^0*', '') AS number_out
FROM yourTable;
yrefmtwq3#
你可以用 substr() ```select case when left(accountno)='00000' then substr(accountno,6,length(accountno)-5)else accountno endfrom yourtablename
substr()
3条答案
按热度按时间gjmwrych1#
试试这个:
或
rks48beu2#
尝试使用
REGEXP_REPLACE
:yrefmtwq3#
你可以用
substr()
```select case when left(accountno)='00000' then substr(accountno,6,length(accountno)-5)
else accountno end
from yourtablename