SPLIT_PART 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SPLIT_PART 函數

在指定分隔符號之處分割字串,並傳回指定位置的部分。

Syntax (語法)

SPLIT_PART(string, delimiter, part)

引數

string

要分割的字串。字串可以是 CHAR 或 VARCHAR。

delimiter

分隔符號字串。

如果分隔符是常值,請以單引號括住。

部分

要傳回之部分的位置 (從 1 起算)。必須是大於 0 的整數。如果 part 大於字串部分的數目,SPLIT_PART 會傳回空字串。如果分隔符找不到,則返回的值包含指定部分的內容,這些內容可能是整個或一個空值。

傳回類型

CHAR 或 VARCHAR 字串,與輸入參數相同。

範例

下列範例將時間戳記欄位 LISTTIME 分割成年、月、日元素。

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 (5 rows)

以下示例選擇 LISTTIME 時間戳字段,並將其拆分到'-'字元來取得月份 (LISTTIME 字串的第二部分),然後計算每月的項目數:

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 (12 rows)