PostgreSQL で文字列の部分文字列を作成する

Postgresql De Wen Zi Lieno Bu Fen Wen Zi Liewo Zuo Chengsuru



文字列から特定のセクション (部分文字列) を抽出したい場合があります。指定されたセクションのみに興味があり、出力内の文字列の他のセクションを省略したい場合があります。 「fname lname」などのフルネームが 1 つの文字列としてあり、出力で「fname」のみを抽出したい場合を想像してください。そのためには、PostgreSQL の部分文字列関数を使用する必要があります。 PostgreSQL で文字列の部分文字列を作成する方法を理解するのに役立つ例を含む、従うべき詳細なガイドを用意しました。

PostgreSQL で文字列の部分文字列を作成する方法の例

最初に確認する必要があるのは構文です。

SUBSTRING(文字列/列名、開始位置、長さ)

指定された構文で、部分文字列を作成する文字列を指定したり、テーブル内の列を指定したりできます。次に、部分文字列を開始する文字列内の位置を指定する必要があります。最後に、部分文字列の長さまたは文字列の終了位置を指定します。実際の動作を確認するために、いくつかの例を示します。







例 1: 部分文字列の長さを指定する

ターゲット文字列がわかったら、部分文字列の長さを設定できます。たとえば、文字列が「Linuxhint」で、部分文字列を「Linux」として作成したい場合は、次のコマンドを実行します。



SELECT SUBSTRING('Linuxhint' FROM 1 FOR 5) AS ユーザー名;

FROM キーワードを使用して開始位置を指定し、FOR キーワードを使用して部分文字列の長さを指定します。 「ユーザー名」は出力に付ける名前です。



コマンドを実行すると、次の出力が得られます。出力として目的の部分文字列をどのように取得したかに注目してください。





文字列内の異なる開始位置から部分文字列を作成するとします。たとえば、部分文字列として「ヒント」が必要な場合は、開始位置と長さを変更するだけです。



そのために、次のようにコマンドを実行します。

例 2: 部分文字列の位置を指定する

文字列はあるものの、部分文字列の正確な長さがわからない場合があります。ただし、部分文字列の作成を開始する位置を指定できます。出力には、指定された位置から最後までのすべての文字列セクションが表示されます。

この例では、文字列は「Hello Linuxhint」です。位置を指定せずに「Linuxhint」を部分文字列として取得するには、部分文字列を作成する位置を指定するだけで済みます。この場合、位置 6 から開始します。したがって、コマンドは次のようになります。

SELECT SUBSTRING('Hello Linuxhint' FROM 6) AS ユーザー名;

例 3: 開始位置と終了位置を指定する

文字列を指定すると、開始位置と終了位置を指定して部分文字列を作成できます。こうすることで、文字列の長さが目的の部分文字列より長い場合でも、指定された開始位置と終了位置に基づいてのみ文字列が作成されます。

文字列として「Hello Linuxhint」を使用すると、部分文字列を「Hello Linux」として作成し、次のように開始位置と終了位置を指定することで他のセクションを省略できます。

SELECT SUBSTRING('Hello Linuxhint', 1, 11) AS ユーザー名;

この場合、キーワードは必要ありません。開始位置と終了位置のみが必要です。

例 4: PostgreSQL テーブルの操作

テーブル内の特定の列から選択した値に基づいて部分文字列を作成することもできます。この例では、「顧客」テーブルを使用します。

「cust_email」列をターゲットにしており、長さを指定して部分文字列を作成したいとします。コマンドは次のようになります。

列内の各値の出力が元の文字列の長さ 3 の部分文字列であることに注目してください。

name 列にフルネームを入力してテーブルを更新しましょう。新しいテーブルは次のようになります。

ここで、名前列から最初のセクション (各クライアントの名) のみを抽出したい場合は、名前列の部分文字列を作成するとうまくいきます。ここで、開始位置を指定する必要があります。部分文字列の長さは、各文字列内のスペースがある位置に設定します。

スペースは、姓と名を区切ることを示します。したがって、このコマンドは文字列内のスペースが始まる位置をチェックします。次に、最初の位置からスペースと交わる位置までの部分文字列を選択します。

次のようにコマンドを実行します。

SELECT order_id, SUBSTRING(name FROM 1 FOR POSITION( ‘ ‘ IN name) – 1) AS client_fname FROM Customers;

「order_id」と部分文字列を選択すると、出力は次のように表示されます。

これが、PostgreSQL テーブル内の文字列から部分文字列を作成する方法です。

結論

PostgreSQL は、ユーザーがさまざまな基準を使用して部分文字列を作成できる部分文字列関数を提供します。目的に応じて、部分文字列の長さ、または開始位置と終了位置を指定できます。この投稿で説明されている例は、PostgreSQL での部分文字列の作成に慣れるのに役立ちます。概念を理解するために練習を続けてください。