Redshift中的split_part在解析后获取最后一个值

时间:2018-04-11 22:57:06

标签: amazon-redshift

我有兴趣从split_part函数结果中获取最后一项。

如果field1有:

switch

split_part(反向(字段1),':',1)因为返回而无法正常工作

abc : def : ghi : jkl
abc : def : ghi : jkl : lmn

我希望它回归:

lkj
nml

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找类似的东西:

reverse(split_part(reverse(field1), ':', 1));

您还可以考虑创建一个功能:

CREATE OR REPLACE FUNCTION reverse_split_part(varchar(65535), varchar(1), int)
RETURNS varchar(65535)
AS
$$
SELECT
    reverse(split_part(reverse($1), $2, $3));
$$ LANGUAGE SQL IMMUTABLE;

并像这样使用它:

admin@dev# select reverse_split_part(field1, ':', 1) from tbl;
reverse_split_part 
--------------------
  jkl
  lmn
(2 rows)