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

Bagaimana untuk Memisahkan Lajur Teks kepada Berbilang Baris dalam Postgres?

DDD
Lepaskan: 2025-01-07 00:41:41
asal
367 orang telah melayarinya

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

Memisahkan Lajur kepada Berbilang Baris dalam Postgres

Memandangkan jadual dengan lajur yang mengandungi teks dan lajur lain yang mengandungi bendera integer, mungkin terdapat perlu mengubah jadual menjadi format baharu di mana setiap perkataan dalam lajur teks menjadi baris berasingan dalam jadual baharu, sambil mengekalkan bendera yang sepadan nilai. Artikel ini meneroka cara untuk mencapai perkara ini menggunakan Postgres.

Satu kaedah yang berkesan ialah menggunakan gabungan LATERAL dalam kombinasi dengan fungsi string_to_table() dalam Postgres 14 atau lebih baru. Kata kunci LATERAL digunakan pada gabungan untuk mencipta fungsi pengembalian set (SRF) yang mengembalikan berbilang baris untuk setiap baris dalam jadual induk. Fungsi string_to_table() membahagikan lajur teks kepada perkataan individu, mencipta baris baharu untuk setiap perkataan.

Sebagai contoh, pertimbangkan pertanyaan berikut:

SELECT token, flag
FROM tbl, string_to_table(subject, ' ') AS token
WHERE flag = 2;
Salin selepas log masuk

Pertanyaan ini melakukan gabungan LATERAL antara jadual tbl dan SRF string_to_table(subject, ' '), yang menandakan lajur subjek dengan membelahnya pada ruang putih. Klausa WHERE menapis hasil untuk memasukkan baris dengan lajur bendera sama dengan 2. Akibatnya, jadual output akan mempunyai satu baris untuk setiap perkataan dalam lajur subjek, dengan nilai bendera yang sepadan.

Dalam Selepas 13 tahun ke atas, unnest(string_to_array(subject, ' ')) boleh digunakan dan bukannya string_to_table(subject, ' ').

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan