ホームページ > データベース > mysql チュートリアル > Postgresでテキストの列を複数の行に分割するにはどうすればよいですか?

Postgresでテキストの列を複数の行に分割するにはどうすればよいですか?

DDD
リリース: 2025-01-07 00:41:41
オリジナル
366 人が閲覧しました

How to Split a Column of Text into Multiple Rows in Postgres?

Postgres で列を複数の行に分割する

テキストを含む列と整数フラグを含む別の列を持つテーブルがある場合、対応するフラグ値を維持しながら、テキスト列の各単語が新しいテーブルの個別の行になる新しい形式にテーブルを変換する必要があります。この記事では、Postgres を使用してこれを実現する方法について説明します。

1 つの効果的な方法は、Postgres 14 以降の string_to_table() 関数と LATERAL 結合を組み合わせて利用することです。 LATERAL キーワードは結合に適用され、親テーブルの各行に対して複数の行を返す集合を返す関数 (SRF) を作成します。 string_to_table() 関数は、テキスト列を個々の単語に分割し、単語ごとに新しい行を作成します。

たとえば、次のクエリを考えてみましょう。

SELECT token, flag
FROM tbl, string_to_table(subject, ' ') AS token
WHERE flag = 2;
ログイン後にコピー

このクエリは LATERAL 結合を実行します。 tbl テーブルと SRF string_to_table(subject, ' ') の間で、空白で分割することでサブジェクト列をトークン化します。 WHERE 句は、フラグ列が 2 に等しい行を含むように結果をフィルタリングします。その結果、出力テーブルには、対象列の単語ごとに 1 行が含まれ、対応するフラグ値が含まれます。

In Postgres 13 以前では、string_to_table(subject, ' ') の代わりに unnest(string_to_array(subject, ' ')) を使用できます。

以上がPostgresでテキストの列を複数の行に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート