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

Oracleで指定された文字列から特定の文字列を抽出するには

    select 
      SUBSTR(s, 1, INSTR(s, '-') - 1) as a, 
      SUBSTR(s, INSTR(s, '-', -1) + 1) as b 
    from 
      (select '[email protected]@BR12340000-990' as s from dual)
    

    SUBSTR(string, start, length)を使用する 次の議論があります:

    Aの場合:

    • 検索する文字列
    • 1をstartとして および
    • (index_of_the_first_hyphen-1)lengthINSTR(string, searchfor) 最初のハイフンのインデックスを提供します

    Bの場合:

    SUBSTR(string, start)を使用する 議論があります:

    • 検索する文字列
    • the(index_of_last_hyphen + 1)-今回は追加のINSTR(string, searchfor, startindex)を使用します 引数startindex -1に設定します。これにより、文字列の末尾から検索して逆方向に作業し、最後のハイフンのインデックスを取得します

    長さの引数は必要ありません-長さのないSUBSTRは、文字列の残りの部分を最後に返します

    開始インデックスが-1のINSTRは逆方向に検索しますが、常に文字列の最後ではなく最初からインデックスを返すことに注意してください。

    INSTR('dddde', 'd', -1)  
           12345            -- returns 4, because d is 4 from the start
           54321            -- it does not return 2, even though d is 2 from the "start" when searching backwards
    


    1. 生成されたPDFファイルをJavaを使用してMySQLデータベースに保存するにはどうすればよいですか?

    2. SQL結合チュートリアル

    3. IDはどのように外部キーmysqliを割り当てることができますか

    4. MySQLに最適なvarcharサイズは何ですか?