从逗号分隔列中查找最后一个值

时间:2015-05-18 11:13:09

标签: amazon-redshift

我在给定列中有逗号分隔的文本。有没有办法得到最后一个,倒数第二个和第三个值?

select mnumber from mytable limit 2;

x, y, z, 1, 2, 3
a, b, c, d, e, f, g, h, 7, 8, 9

此列返回的值应如下所示......

col3, col2 col1
1 2 3
7 8 9

但这不起作用:

split_part(mnumber,',',-1) as last_col

如果在split_part函数中允许减去值,它将返回我需要的内容。

2 个答案:

答案 0 :(得分:12)

select reverse(split_part(reverse(message), ',', 3)) as third_last , 
reverse(split_part(reverse(message), ',', 2)) as second_last ,
reverse(split_part(reverse(message), ',', 1)) as my_last ,
message from my_table

答案 1 :(得分:1)

这将为您提供列的最后一个值

select SPLIT_PART(mnumber, ',', (len(mnumber)/2+1)) from mytable

这将为列

提供第三个最后一个值
select SPLIT_PART(mnumber, ',', ((len(mnumber)/2)-1)) from mytable

这将为列

提供倒数第二个值
select SPLIT_PART(mnumber, ',', (len(mnumber)/2)) from mytable