PostgreSQL SUBSTRING() 関数と正規表現の例

何ですか PostgreSQL 部分文字列?

  PostgreSQL substring 関数は、文字列の一部を抽出して返すのに役立ちます。文字列全体を返すのではなく、その一部のみを返します。

構文

  PostgreSQL 部分文字列関数は次のようになりますwing 構文:

substring( string [from starting_position] [for length] )

計測パラメータ

お名前 説明
文字列 データ型が varchar、char、string などのソース文字列。
開始位置 これはオプションのパラメータです。 これは、文字列の抽出が開始される場所を示します。 このパラメータを省略した場合、抽出は文字列の最初の文字である位置 1 から開始されます。
長さ これはオプションのパラメータです。 文字列から抽出する文字数を表します。 このパラメータを省略した場合、関数は starting_position から文字列の末尾までを抽出します。

この例では、Guru4 という単語から最初の 99 文字を抽出します。

SELECT substring('Guru99' for 4);

コマンドは次の内容を返しますwing:

PostgreSQL 部分文字列

開始位置を指定しなかったため、部分文字列の抽出は位置 1 から始まります。4 文字が抽出されて上記の結果が返されました。

次のことwing 例は、開始位置を指定する方法を示しています。

SELECT substring('Guru99' from 1 for 4);

コマンドは次の内容を返しますwing:

PostgreSQL 部分文字列

部分文字列の抽出は位置 1 から開始し、4 文字を抽出するように指定しました。

文字列 Guru99 から 99 を抽出してみましょう。

SELECT substring('Guru99' from 5);

コマンドは次の内容を返しますwing:

PostgreSQL 部分文字列

開始位置を 5 に指定しました。抽出する文字数が指定されていなかったため、文字列の末尾まで抽出が実行されました。

次に別の例を示します。

SELECT substring('Guru99' from 5 for 2);

コマンドは次の内容を返しますwing:

PostgreSQL 部分文字列

位置 5 から抽出を開始し、2 文字が抽出されました。

以下の Book テーブルを考えてみましょう。

PostgreSQL 部分文字列

各本の名前について大まかに把握したいと思います。 ただし、テーブルの名前列から抽出できるのは最初の 15 文字のみです。

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

コマンドは次の内容を返しますwing:

PostgreSQL 部分文字列

これで、すべての本の名前についておおよその見当がつきました。

SQL 正規表現による部分文字列の照合

In PostgreSQLを使用すると、指定した POSIX 正規表現に一致する部分文字列を抽出できます。この場合、部分文字列関数は次のように使用されます。wing 構文:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

上記のパラメータの説明は次のとおりです。

文字列はソース文字列です。 データ・タイプ varchar、char、string などです。

matching_pattern は、se に使用されるパターンです。archi文字列に ng が含まれています。

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

コマンドは次の内容を返しますwing:

SQL 正規表現による部分文字列の照合

入力文字列はあなたの年齢は 22 です。パターンでは、私たちは se です。archi文字列内の数値パターンが ng である場合、substring 関数は 2 文字のみを抽出する必要があります。

pgAdmin を使用して部分文字列を照合する方法

次に、pgAdmin を使用してアクションがどのように実行されるかを見てみましょう。

データベースを必要としない上記のクエリは、クエリ エディター ウィンドウから直接実行できます。 次のことをしてくださいwing:

ステップ1) アカウントにログインします。
pgAdmin アカウントにログインします。

ステップ2) pgAdminでは、
「クエリツール」アイコンをクリックします。

pgAdmin を使用した部分文字列の一致

クエリエディタウィンドウが開きます。

ステップ3) クエリを入力します。
次のように入力しますwing エディタウィンドウでクエリを実行します。

SELECT substring('Guru99' for 4);

ステップ4) クエリを実行する
「実行」アイコンをクリックしてクエリを実行します。

pgAdmin を使用した部分文字列の一致

ステップ5) クエリの実行が完了しました。
それは以下を返すはずですwing:

pgAdmin を使用した部分文字列の一致

例2:

SELECT substring('Guru99' from 1 for 4);

それは以下を返すはずですwing:

pgAdmin を使用した部分文字列の一致

次の例は次のとおりです。

SELECT substring('Guru99' from 5);

それは以下を返すはずですwing:

pgAdmin を使用した部分文字列の一致

例3:

SELECT substring('Guru99' from 5 for 2);

それは以下を返すはずですwing:

pgAdmin を使用した部分文字列の一致

ここで、Demo データベースの Book テーブルを使用して例を実行してみましょう。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

pgAdmin を使用した部分文字列の一致

ステップ3) クエリ エディターにクエリを入力します。

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

ステップ4) 「実行」ボタンをクリックします。

pgAdmin を使用した部分文字列の一致

それは以下を返すはずですwing:

PostgreSQL 部分文字列

これで、すべての本の名前についての基本的なアイデアが得られました。

SQL 正規表現による部分文字列の照合

pgAdmin で同じことを行うには、次の手順を実行します。wing:

ステップ1) pgAdmin アカウントにログインします。

ステップ2) 「クエリツール」アイコンをクリックします。

SQL 正規表現による部分文字列の照合

クエリエディタウィンドウが開きます。

ステップ3) 次のように入力しますwing エディタウィンドウでクエリを実行します。

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

ステップ4) 「実行」アイコンをクリックしてクエリを実行します。

SQL 正規表現による部分文字列の照合

それは以下を返すはずですwing:

SQL 正規表現による部分文字列の照合

まとめ

  •   PostgreSQL Substring 関数は、文字列の一部だけを抽出して返すのに役立ちます。
  • 文字列の最初の文字は位置 1 にあります。
  • 文字列から抽出する文字数が指定されていない場合、関数は指定された開始位置から文字列の末尾までの文字を抽出します。
  • 抽出する文字数を指定すると、その文字数だけ抽出されます。

このチュートリアルで使用するデータベースをダウンロードする