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

oraclesql:如何使用regexp\将令牌带到两个或更多列

  •  0
  • Espresso  · 技术社区  · 3 年前

    如果streetnum存在,如何使用oracle regexp\*str拆分它?目标是使视图V\u MY\u USERS具有3列ID、STREET\u NUM、STREET\u NAME。

    MY_USERS - that has two columns
    
    ID    STREET_ADDRESS
    -------------------- 
    1     991 My Street  # Some records start with street number followed by space
    2     Don street     # some records do not have street num, => null
    

    ID    STREET_NUM       STREET_NAME
    ----------------------------------
    1     991              My Street            
    2     null             Don street    
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Tim Biegeleisen    3 年前

    我会用 REGEXP_SUBSTR REGEXP_REPLACE 在这里:

    CREATE VIEW V_MY_USERS AS
    SELECT
        ID,
        REGEXP_SUBSTR(STREET_ADDRESS, '^\d+') AS STREET_NUM,
        REGEXP_REPLACE(STREET_ADDRESS, '^\d+ ', '') AS STREET_NAME
    FROM MY_USERS
    ORDER BY ID;
    

    screen capture from demo link below

    Demo