我在给定列中有逗号分隔的文本。有没有办法得到最后一个,倒数第二个和第三个值?
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函数中允许减去值,它将返回我需要的内容。
答案 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