我在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_ *值
答案 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开始计数。