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 yang 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 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