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

何ですか PostgreSQL 部分文字列?

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

構文

この PostgreSQL 部分文字列関数は次の構文を取ります。

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

Parameters

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

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

SELECT substring('Guru99' for 4);

コマンドは以下を返します。

PostgreSQL 部分文字列

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

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

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

コマンドは以下を返します。

PostgreSQL 部分文字列

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

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

SELECT substring('Guru99' from 5);

コマンドは以下を返します。

PostgreSQL 部分文字列

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

次に別の例を示します。

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

コマンドは以下を返します。

PostgreSQL 部分文字列

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

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

PostgreSQL 部分文字列

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

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

コマンドは以下を返します。

PostgreSQL 部分文字列

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

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

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

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

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

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

matching_pattern は文字列内の検索に使用されるパターンです。

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

コマンドは以下を返します。

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

入力文字列は、あなたの年齢は 22 です。パターンでは、文字列内の数値パターンを検索しています。これが見つかった場合、サブ文字列関数は XNUMX 文字のみを抽出します。

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

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

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

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

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

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

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

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

SELECT substring('Guru99' for 4);

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

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

ステップ5) クエリの実行が完了しました。
次のような結果が返されます。

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

例2:

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

次のような結果が返されます。

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

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

SELECT substring('Guru99' from 5);

次のような結果が返されます。

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

例3:

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

次のような結果が返されます。

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 を使用した部分文字列の一致

次のような結果が返されます。

PostgreSQL 部分文字列

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

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

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

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

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

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

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

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

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

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

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

次のような結果が返されます。

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

まとめ

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

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