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

文字列を区切り文字として使用して、正規表現を使用して文字列を分割するにはどうすればよいですか?

    これらの方法を試してください。

    これは、最初に要求した最初の要素を取得します:

    SQL> with tbl(str) as (
          select 'Hello My Delimiter World' from dual
        )
        SELECT REGEXP_SUBSTR( str ,'(.*?)( My Delimiter |$)', 1, 1, NULL, 1 ) AS element
        FROM   tbl;
    
    ELEME
    -----
    Hello
    

    このバージョンは文字列全体を解析します。欠落している要素で機能することを示すために追加されたNULL要素:

    SQL> with tbl(str) as (
          select ' My Delimiter Hello My Delimiter World My Delimiter  My Delimiter test My Delimiter ' from dual
        )
        SELECT LEVEL AS element,
        REGEXP_SUBSTR( str ,'(.*?)( My Delimiter |$)', 1, LEVEL, NULL, 1 ) AS element_value
        FROM   tbl
        CONNECT BY LEVEL <= regexp_count(str, ' My Delimiter ')+1;
    
       ELEMENT ELEMENT_VALUE
    ---------- --------------------
             1
             2 Hello
             3 World
             4
             5 test
             6
    
    6 rows selected.
    



    1. Apache、MariaDB、PHPをサポートするUbuntuへのLaravelのインストール

    2. PostgreSQLはテキストに部分文字列が出現する回数をカウントします

    3. MySQLとMariaDBの容量計画-ストレージサイズのディメンション化

    4. PostgreSQLデータベースの監視:監視対象のヒント