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

キャプチャされたグループを評価された式に置き換える方法(キャプチャグループに整数値を追加する)

    正規表現はすべて数字であっても、キャプチャされたグループの計算をサポートしていないため、正規表現だけでこれを行うことはできません。したがって、フロア番号を表すグループを取得し、計算を行って、次のようにつなぎ合わせる必要があります。

    SELECT regexp_replace('B12F34', 'B(\d+)F(\d+)', 'Building \1 - Floor ') ||
           ((regexp_matches('B12F34', '[0-9]+$'))[1]::int + 10)::text;
    

    2つの正規表現呼び出しがあるため、あまり効率的ではありません。もう1つのオプションは、サブクエリで2つの数値を取得し、メインクエリで文字列をアセンブルすることです。

    SELECT format('Building %L - Floor %L', m.num[1], (m.num[2])::int + 10)
    FROM (
      SELECT regexp_matches('B12F34', '[0-9]+', 'g') AS num) m;
    



    1. 郵便配達員と一緒にファイルをLaravelAPIに送信します

    2. MySQL全文サフィックス検索(ブールモード)-(* apple)

    3. JDBCステートメントとプリペアドステートメントの違い

    4. FluentNHibernateおよびGUIDIDの操作