Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Lajur Teks kepada Berbilang Baris dalam 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;
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!