PostgreSQLでは、文字列内の部分文字列の位置を見つけるためにPOSITION()関数を使用します。この関数は、指定された文字列内で指定された部分文字列が最初に出現する位置を返します。部分文字列が見つからない場合は0を返します。別の関数STRPOS()を使用することもできます。次の例を見てみましょう。

  • POSITION() 関数を使用して PostgreSQL で部分文字列の位置を取得する方法
  • STRPOS() 関数を使用して部分文字列の位置を取得する方法

Position() 関数の構文:

POSITION(substring IN string)

substring:検索する部分文字列。

string: 検索対象となる文字列または列。

例 1: PostgreSQL で特定の文字列内の部分文字列の位置を見つける

文字列「PostgreSQL」内の「SQL」の位置を見つけるには:

SELECT POSITION('SQL' IN 'PostgreSQL') AS substring_position;

出力:

PostgreSQL で部分文字列の位置を取得する 1

例 2: 部分文字列が見つからない – Position()

部分文字列が見つからない場合、関数は 0 を返します。

SELECT POSITION('Database' IN 'PostgreSQL') AS substring_position;

出力:

PostgreSQL で部分文字列の位置を取得する 2

例3:PostgreSQL 内の部分文字列の場所または位置:

テーブル「summerfruits」を使用します

PostgreSQL で部分文字列の位置を取得する 3

PostgreSQL 列内の部分文字列の場所または位置を取得するには、POSITION() 関数を使用します。引数が 2 つある場合、最初の引数は部分文字列で、2 番目の引数は以下に示すように文字列列です。

select *,position('e' in colour) from summerfruits

部分文字列「e」の位置はColour列から返されます。したがって、結果の表は次のようになります。

出力:

PostgreSQL で部分文字列の位置を取得する 4

PostgreSQL で STRPOS() 関数を使用して文字列の位置を取得します。

PostgreSQL では、strpos() 関数は文字列内の部分文字列の最初の出現位置を見つけるために使用されます。文字列の最初の文字が位置 1 にある部分文字列のインデックス位置を返します。部分文字列が見つからない場合は 0 を返します。

STRPOS() 関数の構文:

strpos(string, substring)

string: 検索する文字列。

substring: 検索する部分文字列。

例 1: 文字列内の部分文字列の位置を見つける – STRPOS()

文字列「PostgreSQL」内の「SQL」の位置を見つけるには:

SELECT strpos('PostgreSQL', 'SQL') AS substring_position;

出力:

PostgreSQL で部分文字列の位置を取得する 5

例 2: 部分文字列が見つからない – STRPOS()

部分文字列が見つからない場合、関数は 0 を返します。

SELECT strpos('PostgreSQL', 'Database') AS substring_position;

出力:

PostgreSQL で部分文字列の位置を取得する 6

例3: 列内の部分文字列の位置を見つける

テーブル「summerfruits」を使用します

PostgreSQL で部分文字列の位置を取得する 7

PostgreSQL 列内の部分文字列の場所または位置を取得するには、STRPOS() 関数を使用します。引数が 2 つある場合、最初の引数は文字列列で、2 番目の引数は以下に示すように部分文字列です。

select *,STRPOS(colour,'e') from summerfruits

部分文字列「e」の位置はColour列から返されます。したがって、結果の表は次のようになります。

出力:

PostgreSQL で部分文字列の位置を取得する 8