PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Memisahkan String di PostgreSQL

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatur ulang SUM yang berjalan setelah mencapai ambang batas?

  2. Permintaan untuk ORDER BY jumlah baris yang dikembalikan dari SELECT lain

  3. Cara Memeriksa Versi PostgreSQL Anda

  4. SQLAlchemy - SQLite untuk pengujian dan Postgresql untuk pengembangan - Bagaimana cara mem-port?

  5. Cara memetakan array PostgreSQL dengan Hibernate