Sql 在Amazon Redshift上获取字符串中的最后一个单词
已经有人问过类似的问题,但是AmazonRedshift不支持MySQL的一些命令,因此需要修改代码 我试图从给定列的字符串中提取最后一个单词Sql 在Amazon Redshift上获取字符串中的最后一个单词,sql,amazon-web-services,amazon-redshift,Sql,Amazon Web Services,Amazon Redshift,已经有人问过类似的问题,但是AmazonRedshift不支持MySQL的一些命令,因此需要修改代码 我试图从给定列的字符串中提取最后一个单词 col1 | +-----+ |a | |b c | |d e f| 这将是一个输出: |result| +------+ |a | |c | |f | 我尝试过使用子字符串索引 SELECT SUBSTRING_INDEX("a b c", " ", -1); 但是,它不适用于红移 因此,我考虑将子字符串与位置一起
col1 |
+-----+
|a |
|b c |
|d e f|
这将是一个输出:
|result|
+------+
|a |
|c |
|f |
我尝试过使用子字符串索引
SELECT SUBSTRING_INDEX("a b c", " ", -1);
但是,它不适用于红移
因此,我考虑将子字符串
与位置
一起使用,但位置
只找到第一个空格,似乎不起作用:
SELECT SUBSTRING(column, POSITION (' ' in REVERSE(column)), 10)
知道怎么做吗?使用拆分部分
select split_part(column,' ',len(column)-1)
您可以反转字符串,取第一个单词,然后像这样将其反转回去
select reverse(split_part(reverse('ab bc cd'),' ',1));
它返回空间,我认为有必要像一个符咒一样指定lenpartworks(至少在干净的数据中),谢谢!