Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi SPLIT_PART
Membagi string pada pembatas yang ditentukan dan mengembalikan bagian pada posisi yang ditentukan.
Sintaks
SPLIT_PART(string, delimiter, position)
Argumen
- tali
-
Sebuah kolom string, ekspresi, atau string literal yang akan dibagi. String dapat berupa CHAR atau VARCHAR.
- pembatas
-
String pembatas menunjukkan bagian dari string input.
Jika pembatas adalah literal, lampirkan dalam tanda kutip tunggal.
- posisi
-
Posisi bagian string untuk kembali (menghitung dari 1). Harus bilangan bulat lebih besar dari 0. Jika posisi lebih besar dari jumlah bagian string, SPLIT_PART mengembalikan string kosong. Jika pembatas tidak ditemukan dalam string, maka nilai yang dikembalikan berisi isi dari bagian yang ditentukan, yang mungkin seluruh string atau nilai kosong.
Jenis pengembalian
Sebuah string CHAR atau VARCHAR, sama dengan parameter string.
Contoh-contoh
Contoh berikut membagi string literal menjadi beberapa bagian menggunakan $
pembatas dan mengembalikan bagian kedua.
select split_part('abc$def$ghi','$',2)
split_part ---------- def
Contoh berikut membagi string literal menjadi beberapa bagian menggunakan $
pembatas. Ia mengembalikan string kosong karena bagian 4
tidak ditemukan.
select split_part('abc$def$ghi','$',4)
split_part ----------
Contoh berikut membagi string literal menjadi beberapa bagian menggunakan #
pembatas. Ia mengembalikan seluruh string, yang merupakan bagian pertama, karena pembatas tidak ditemukan.
select split_part('abc$def$ghi','#',1)
split_part ------------ abc$def$ghi
Contoh berikut membagi bidang timestamp LISTTIME menjadi komponen tahun, bulan, dan hari.
select listtime, split_part(listtime,'-',1) as year, split_part(listtime,'-',2) as month, split_part(split_part(listtime,'-',3),' ',1) as day from listing limit 5;
listtime | year | month | day ---------------------+------+-------+------ 2008-03-05 12:25:29 | 2008 | 03 | 05 2008-09-09 08:03:36 | 2008 | 09 | 09 2008-09-26 05:43:12 | 2008 | 09 | 26 2008-10-04 02:00:30 | 2008 | 10 | 04 2008-01-06 08:33:11 | 2008 | 01 | 06
Contoh berikut memilih bidang timestamp LISTTIME dan membaginya pada '-'
karakter untuk mendapatkan bulan (bagian kedua dari string LISTTIME), lalu menghitung jumlah entri untuk setiap bulan:
select split_part(listtime,'-',2) as month, count(*) from listing group by split_part(listtime,'-',2) order by 1, 2;
month | count -------+------- 01 | 18543 02 | 16620 03 | 17594 04 | 16822 05 | 17618 06 | 17158 07 | 17626 08 | 17881 09 | 17378 10 | 17756 11 | 12912 12 | 4589