Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Lajur Teks kepada Berbilang Baris dalam PostgreSQL?

Bagaimana untuk Memisahkan Lajur Teks kepada Berbilang Baris dalam PostgreSQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-06 21:37:40641semak imbas

How to Split a Text Column into Multiple Rows in PostgreSQL?

Memisahkan Lajur kepada Baris dalam Postgres

Dalam Postgres, keperluan mungkin timbul untuk mengubah jadual dengan satu lajur teks jenis kepada jadual dengan berbilang baris, di mana setiap baris mewakili token daripada lajur teks.

Data Sampel dan Diingini Output

Pertimbangkan jadual sumber berikut:

subject flag
this is a test 2

Output yang dikehendaki ialah jadual dengan dua lajur:

token flag
this 2
is 2
a 2
test 2

Penyelesaian Menggunakan LATERAL Join

Untuk Postgres 14 dan ke atas, LATERAL join boleh digunakan dengan fungsi string_to_table() untuk mencapai transformasi ini. Bentuk pertanyaan minimum ialah:

SELECT token, flag
FROM tbl, string_to_table(subject, ' ') token
WHERE flag = 2;

Untuk Postgres 13 dan lebih awal, unnest(string_to_array(subject, ' ')) hendaklah digunakan dan bukannya string_to_table(subject, ' ').

Fungsi string_to_table() membahagikan lajur subjek kepada token berasingan, satu untuk setiap baris, dengan nilai yang sama untuk lajur bendera. Klausa WHERE menapis hasil untuk hanya menunjukkan token yang dibenderakan dengan nilai 2.

Penyelesaian ini menyediakan cara yang ringkas dan cekap untuk membahagikan lajur teks kepada baris individu dalam Postgres.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Lajur Teks kepada Berbilang Baris dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn