【问题标题】:trim leading zeros in impala修剪黑斑羚中的前导零
【发布时间】:2018-11-27 06:40:23
【问题描述】:

我有两种帐号,它们都是字符串: 其中一些有leading zeros,另一些已正确导入且没有前导零;

如何在不修剪正常帐号的情况下去掉前导零?

前导零的有点: 0000012345678

没有前导零的是: 1345678

如何在 Impala 中做到这一点而不修剪所有帐号?据我所见,在那些带有前导零的记录中总是有 5 个前导零。

【问题讨论】:

    标签: sql cloudera impala


    【解决方案1】:

    试试这个:

    SELECT CAST( "0000012345678"  AS INT);
    

    SELECT regexp_replace( "0000012345678","^0+(?!$)","")
    

    【讨论】:

      【解决方案2】:

      尝试使用REGEXP_REPLACE

      SELECT REGEXP_REPLACE('0000012345678', '^0*', '') AS number_out
      FROM yourTable;
      

      【讨论】:

        【解决方案3】:

        你可以使用substr()

        select case when left(accountno)='00000' then substr(accountno,6,length(accountno)-5)
        else accountno end
        from yourtablename
        

        【讨论】:

          猜你喜欢
          • 2014-12-01
          • 1970-01-01
          • 2015-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多