Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Amazon Redshift上获取字符串中的最后一个单词_Sql_Amazon Web Services_Amazon Redshift - Fatal编程技术网

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

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); 但是,它不适用于红移 因此,我考虑将子字符串与位置一起

已经有人问过类似的问题,但是AmazonRedshift不支持MySQL的一些命令,因此需要修改代码

我试图从给定列的字符串中提取最后一个单词

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(至少在干净的数据中),谢谢!