在Amazon Redshift上获取字符串中的最后一个单词

时间:2019-04-01 07:08:45

标签: sql amazon-web-services amazon-redshift

已经提出了类似的问题,但是Amazon Redshift不支持MySQL的某些命令,因此需要修改代码。

我正在尝试从给定列的字符串中提取最后一个单词。

col1 |
+-----+
|a    |
|b c  |
|d e f|

这将是输出:

|result|
+------+
|a     |
|c     |
|f     |

我曾尝试与SUBSTRING_INDEX合作,

SELECT SUBSTRING_INDEX("a b c", " ", -1);

但是它不适用于Redshift。

因此,我考虑过将SUBSTRINGPOSITION一起使用,但是POSITION仅找到第一个空格,似乎不起作用:

SELECT SUBSTRING(column, POSITION (' ' in REVERSE(column)), 10)

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用split_part

select split_part(column,' ',len(column)-1)

答案 1 :(得分:0)

您可以颠倒字符串,采用第一个单词,然后像这样颠倒

select reverse(split_part(reverse('ab bc cd'),' ',1));