Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SPLIT_ PART fungsi
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 bisa CHAR atauVARCHAR.
- 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
A CHAR atau VARCHAR string, sama dengan parameter string.
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 LISTTIME timestamp dan membaginya pada '-'
karakter untuk mendapatkan bulan (bagian kedua dari LISTTIME string), 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