【问题标题】:find last value from comma separated column从逗号分隔的列中查找最后一个值
【发布时间】:2015-07-29 20:50:47
【问题描述】:

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

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 函数中允许负值,它会返回我需要的值。

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:
    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
    

    【讨论】:

    • 我更喜欢这个答案,因为它适用于可变长度的分割部分。
    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多