Fungsi SPLIT_PART - Amazon Redshift

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