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

n番目の要素regexpを取得するOracleSQL

    区切り値が常にコンマの間に英数字である場合は、次のことを試してください。

    SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
      FROM dual;
    

    7番目の値(末尾のコンマを含む)を取得します。空の場合は、末尾のカンマが表示されます(簡単に削除できます)。

    明らかに、7番目以外の値が必要な場合は、4番目のパラメーター値をn番目のオカレンスに変更します。例:

    SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
      FROM dual;
    

    編集:私は正規表現が大好きなので、ここに末尾のコンマも削除するソリューションがあります

    SELECT REPLACE(
              REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>), 
              ','
           )
      FROM dual;
    

    お役に立てば幸いです



    1. MySQL:サブクエリからの完全なデータを使用して、2つの多対多の関係と重複を含むクエリ

    2. MySQL5.6EOLの発表

    3. SQL-MySQLのテーブルの行をループしますか?

    4. ユーザー'ユーザー'@'%'と'ユーザー'@'localhost'は同じではありませんか?