sql >> データベース >  >> RDS >> Oracle

Oracle-文字列のカンマ区切りを分割します(文字列にはスペースと連続したカンマが含まれます)

    リスト部分の解析にはこれを試してください。 NULLSを処理します:

    SQL> select regexp_substr('12 3,456,,abc,def', '(.*?)(,|$)', 1, level, null, 1) SPLIT, level
        from dual
        connect by level <= regexp_count('12 3,456,,abc,def',',') + 1
        ORDER BY level;
    
    SPLIT                  LEVEL
    ----------------- ----------
    12 3                       1
    456                        2
                               3
    abc                        4
    def                        5
    
    SQL>
    

    残念ながら、リストを解析するために正規表現を検索すると、nullを処理しない次の形式が常に見つかります。これは、避ける必要があります:'[^,]+' 。詳細については、こちらを参照してください:Oracleでは、カンマ区切りの値を列に分割します。



    1. PostgreSQL9.0のバックアップとリカバリ

    2. PostgreSQLのハイフン(-)のエスケープシーケンスは何ですか

    3. IntegrityErrorの重複キー値が一意の制約に違反しています-django/postgres

    4. 2つのクラスタリング要因の物語