string_to_array函数

时间:2016-08-12 06:29:05

标签: postgresql amazon-redshift

我在redshift sting_to_array语句中使用case函数。但我得到一个像 -

这样的错误

[0A000] ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.

可能是什么问题?

以下是示例代码 -

SELECT
  CASE 
    WHEN upper(url) LIKE upper('%utm_source%')
             THEN  (string_to_array(url, '&'))[1]
END as utm_source,
FROM
TEMP.table_data a2;

基本上我的网址是这种格式 -

utm_source=257509081c6f53&utm_medium=internet&utm_campaign=messenger-android&utm_term=search_keyword&utm_content=new_products

我的目标是仅提取utm_ *值

1 个答案:

答案 0 :(得分:0)

Redshift中不支持数组函数和运算符:http://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-functions.html

相反,请尝试使用SPLIT_PART功能:

SELECT
  CASE 
    WHEN upper(url) LIKE upper('%utm_source%')
      THEN SPLIT_PART(url, '&', 1)
  END as utm_source
FROM
TEMP.table_data a2;

注意: SPLIT_PART函数从1开始计数。