PostgreSQL では、SUBSTRING() 関数を使用して列から部分文字列を抽出できます。この関数を使用すると、抽出する部分文字列の開始位置と長さを指定できます。
- SUBSTRING() 関数を使用して、PostgreSQL の文字列から部分文字列を取得します。
- PostgreSQL で SUBSTRING() と FROM および FOR を使用して文字列の部分文字列を取得する
- Substring() 関数を使用して最初の N 文字を抽出する
構文:
SUBSTRING (string ,start_position , length )
string:
部分文字列を抽出する文字列。
start_position:
部分文字列の開始位置 (1 から始まるインデックス)。
length:
抽出する文字数。
例1: 基本的な使用方法
特定の文字列から部分文字列を抽出するには:
SELECT SUBSTRING('PostgreSQL',1,4) AS substring;
出力:

例 2: 位置に基づいて部分文字列を抽出する – SUBSTRING()FROMとFORで
位置に基づいて特定の文字列から部分文字列を抽出するには、SUBSTRING()を使用します。FROMとFORで
SELECT SUBSTRING('PostgreSQL' FROM 1 FOR 4) AS substring;
出力:

例 2b: 位置に基づいて部分文字列を抽出する
位置に基づいて特定の文字列から部分文字列を抽出するには、FROM キーワードのみを使用します。FROM は開始位置を定義し、FOR がないため最後まで実行されます。
SELECT SUBSTRING('PostgreSQL' FROM 5) AS substring;
出力:

例3: 列から部分文字列を抽出する
列 email を持つテーブル employees_email があり、電子メール アドレスのドメイン部分を抽出したいとします。

電子メール アドレスのドメイン部分を抽出するには:
開始位置を定義する FROM でサブ文字列と位置を使用しますが、FOR がないため、最後までかかります。したがって、位置 @ から開始し、最後までかかります。
SELECT *, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain FROM employees_email;
出力:

例4: PostgreSQLの列の部分文字列を取得する
PostgreSQL の列の部分文字列は、SUBSTRING() 関数を使用して抽出されます。最初の 7 文字を抽出するには、次のようにします。
select *, substring(email,1,7) as email_new from employees_email
結果のデータフレームは次のようになります
出力:
