Получение последнего слова в строке на Amazon Redshift - PullRequest
0 голосов
/ 01 апреля 2019

Подобный вопрос уже задавался, однако 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)

Есть идеи как это сделать?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Вы можете перевернуть строку, взять первое слово и затем перевернуть его обратно, как это

select reverse(split_part(reverse('ab bc cd'),' ',1));
0 голосов
/ 01 апреля 2019

использовать split_part

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