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);
コマンドは以下を返します。
開始位置を指定しなかったため、部分文字列の抽出は位置 1 から始まります。4 文字が抽出されて上記の結果が返されました。
次の例は、開始位置を指定する方法を示しています。
SELECT substring('Guru99' from 1 for 4);
コマンドは以下を返します。
部分文字列の抽出は位置 1 から開始し、4 文字を抽出するように指定しました。
文字列 Guru99 から 99 を抽出してみましょう。
SELECT substring('Guru99' from 5);
コマンドは以下を返します。
開始位置を 5 に指定しました。抽出する文字数が指定されていなかったため、文字列の末尾まで抽出が実行されました。
次に別の例を示します。
SELECT substring('Guru99' from 5 for 2);
コマンドは以下を返します。
位置 5 から抽出を開始し、2 文字が抽出されました。
以下の Book テーブルを考えてみましょう。
各本の名前について大まかに把握したいと思います。 ただし、テーブルの名前列から抽出できるのは最初の 15 文字のみです。
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
コマンドは以下を返します。
これで、すべての本の名前についておおよその見当がつきました。
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;
コマンドは以下を返します。
入力文字列は、あなたの年齢は 22 です。パターンでは、文字列内の数値パターンを検索しています。これが見つかった場合、サブ文字列関数は XNUMX 文字のみを抽出します。
pgAdmin を使用して部分文字列を照合する方法
次に、pgAdmin を使用してアクションがどのように実行されるかを見てみましょう。
データベースを必要としない上記のクエリは、クエリ エディター ウィンドウから直接実行できます。次の操作を実行してください。
ステップ1) アカウントにログインします。
pgAdmin アカウントにログインします。
ステップ2) pgAdminでは、
「クエリツール」アイコンをクリックします。
クエリエディタウィンドウが開きます。
ステップ3) クエリを入力します。
エディター ウィンドウに次のクエリを入力します。
SELECT substring('Guru99' for 4);
ステップ4) クエリを実行する
「実行」アイコンをクリックしてクエリを実行します。
ステップ5) クエリの実行が完了しました。
次のような結果が返されます。
例2:
SELECT substring('Guru99' from 1 for 4);
次のような結果が返されます。
次の例は次のとおりです。
SELECT substring('Guru99' from 5);
次のような結果が返されます。
例3:
SELECT substring('Guru99' from 5 for 2);
次のような結果が返されます。
ここで、Demo データベースの Book テーブルを使用して例を実行してみましょう。
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
ステップ4) 「実行」ボタンをクリックします。
次のような結果が返されます。
これで、すべての本の名前についての基本的なアイデアが得られました。
SQL 正規表現による部分文字列の照合
pgAdmin で同じことを実行するには、次の手順を実行します。
ステップ1) pgAdmin アカウントにログインします。
ステップ2) 「クエリツール」アイコンをクリックします。
クエリエディタウィンドウが開きます。
ステップ3) エディター ウィンドウに次のクエリを入力します。
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
ステップ4) 「実行」アイコンをクリックしてクエリを実行します。
次のような結果が返されます。
まとめ
- この PostgreSQL Substring 関数は、文字列の一部だけを抽出して返すのに役立ちます。
- 文字列の最初の文字は位置 1 にあります。
- 文字列から抽出する文字数が指定されていない場合、関数は指定された開始位置から文字列の末尾までの文字を抽出します。
- 抽出する文字数を指定すると、その文字数だけ抽出されます。