已经提出了类似的问题,但是Amazon Redshift不支持MySQL的某些命令,因此需要修改代码。
我正在尝试从给定列的字符串中提取最后一个单词。
col1 |
+-----+
|a |
|b c |
|d e f|
这将是输出:
|result|
+------+
|a |
|c |
|f |
我曾尝试与SUBSTRING_INDEX
合作,
SELECT SUBSTRING_INDEX("a b c", " ", -1);
但是它不适用于Redshift。
因此,我考虑过将SUBSTRING
与POSITION
一起使用,但是POSITION
仅找到第一个空格,似乎不起作用:
SELECT SUBSTRING(column, POSITION (' ' in REVERSE(column)), 10)
有什么想法吗?
答案 0 :(得分:0)
使用split_part
select split_part(column,' ',len(column)-1)
答案 1 :(得分:0)
您可以颠倒字符串,采用第一个单词,然后像这样颠倒
select reverse(split_part(reverse('ab bc cd'),' ',1));