你好,我想在基于redshift的情况下使用case语句,可以从正则表达式中进行解析,然后从中进行决策。
CASE
WHEN regexp_like (SPLIT_PART(eel_line,',',21), '^1z.*') THEN SPLIT_PART(eel_line,',',21)
ELSE SPLIT_PART(eel_line,',',18)
END AS trackno,
我收到的错误:函数regexp_like(text,“ unknown”)不存在;
当正则表达式匹配时,我想要SPLIT_PART(eel_line,',',21),否则我想要另一个索引。如代码所示,非常感谢。
答案 0 :(得分:0)
RedShift基于Postgres。使用~
进行模式匹配:
WHEN SPLIT_PART(eel_line, ',', 21) ~ '^1z.*') THEN SPLIT_PART(eel_line, ',', 21)
您不需要.*
。实际上,您根本不需要正则表达式:
WHEN SPLIT_PART(eel_line, ',', 21) LIKE '1z%') THEN SPLIT_PART(eel_line, ',', 21)