Masalah:
Anda ingin membagi string di PostgreSQL.
Contoh 1:
Anda memiliki sebuah kalimat, dan Anda ingin membaginya dengan karakter spasi.
Solusi 1:
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Hasilnya terlihat seperti ini:
bagian |
---|
Ini |
dan |
contoh |
kalimat. |
Diskusi:
Untuk mendapatkan semua bagian kalimat sebagai elemen array di PostgreSQL, gunakan fungsi string_to_array(text, delimiter). Teks adalah teks yang ingin Anda pisahkan, dan pembatasnya adalah string (di sini, spasi) yang digunakan untuk memisahkan teks. Penggunaan sederhana string_to_array(text, delimiter)
fungsi:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
akan mengembalikan hasil berikut:
bagian |
---|
{Ini,sebuah,contoh,kalimat.} |
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Ini akan menghasilkan kolom dengan semua bagian string, masing-masing dalam baris terpisah.
Contoh 2:
Dalam sentences
tabel, ada beberapa kalimat.
kalimat |
---|
Ini adalah kalimat pertama. |
Dan ini yang lainnya. |
Anda ingin membagi kalimat dengan karakter spasi.
Solusi 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Hasilnya terlihat seperti ini:
bagian |
---|
Ini |
adalah |
yang |
pertama |
kalimat. |
Dan |
ini |
yang |
lainnya |
satu. |
Diskusi:
Sama seperti pada contoh sebelumnya, gunakan fungsi string_to_array(text, delimiter) dan unnest(array). Teks harus berupa nama kolom (kalimat), tetapi pembatasnya tetap spasi (' '). Kali ini, Anda menggunakan data dari tabel, jadi Anda perlu menggunakan kata kunci FROM bersama dengan nama tabel.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Contoh 3:
Dalam sentences
tabel, ada dua kolom:id
dan sentence
.
id | kalimat |
---|---|
1 | Ini adalah kalimat pertama. |
2 | Dan ini yang lainnya. |
Anda ingin membagi kalimat dengan karakter spasi.
Solusi 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Hasilnya terlihat seperti ini:
id | bagian |
---|---|
1 | Ini |
1 | adalah |
1 | yang |
1 | pertama |
1 | kalimat. |
2 | Dan |
2 | ini |
2 | yang |
2 | lainnya |
2 | satu. |
Diskusi:
Contoh ini sangat mirip, tetapi Anda juga ingin melihat id
kolom. Untuk melihat kolom ini, tambahkan saja ke SELECT
list dan ingat untuk menyertakan koma. Anda akan melihat ID kalimat beserta bagian kalimat di hasil. Misalnya, kalimat pertama dipecah menjadi 5 bagian, dan memiliki ID 1
. Oleh karena itu, ID untuk semua 5 bagian dalam hasil akan menjadi 1
. Kalimat berikutnya, dengan ID 2
, juga dibagi menjadi 5 bagian, dan masing-masing bagian ini akan ditampilkan dengan id = 2
.