代码之家  ›  专栏  ›  技术社区  ›  Arifullah

如何从oracle中的列中删除特定的初始字符?

  •  0
  • Arifullah  · 技术社区  · 2 年前

    我有一列电话号码的名称,它由不同类型的号码组成,例如:

    电话号码
    078912354
    93784385483
    009378248448
    776868886

    所以我想删除所有以(0,930093)开头的初始数字。我想要的预期结果是:

    电话号码
    78912354
    784385483
    78248448
    776868886
    1 回复  |  直到 2 年前
        1
  •  1
  •   Littlefoot    2 年前

    这里有一个选项:

    样本数据:

    SQL> select * from test order by phone_number;
    
    PHONE_NUMBER NEW_PHONE_NUMBER
    ------------ --------------------
    009378248448
    078912354
    776868886
    93784385483
    

    删除您提到的前导字符:

    SQL> update test set
      2    new_phone_number = regexp_replace(phone_number, '^(0093|093|93|0)');
    
    4 rows updated.
    

    结果:

    SQL> select * from test order by phone_number;
    
    PHONE_NUMBER NEW_PHONE_NUMBER
    ------------ --------------------
    009378248448 78248448
    078912354    78912354
    776868886    776868886
    93784385483  784385483
    
    SQL>