繁体   English   中英

从postgres中的文本字符串中提取子字符串

[英]Extract a substring from a text string in postgres

我试图从postgresql中的文本字符串中提取子字符串。 文本字符串的列名称是URL,我正在使用subtring函数定义一个正则表达式,该正则表达式将仅返回我想要的部分:

SELECT
substring('user_latitude=.*user_' from URL)
FROM my_table
limit 10

当我执行此查询时,会收到以下响应:

SQL错误[XX000]:错误:未实现详细信息:


错误:未实现代码:1001上下文:'false'-未实现函数子字符串(文本,文本)-使用REGEXP_SUBSTR代替查询:258128位置:cg_expr.cpp:4265进程:padbmaster [pid = 52019]


org.postgresql.util.PSQLException:错误:未实现详细信息:


错误:未实现代码:1001上下文:'false'-未实现函数子字符串(text,text)-使用> REGEXP_SUBSTR代替查询:258128位置:cg_expr.cpp:4265进程:padbmaster [pid = 52019]


但是,REGEXP_SUBSTR似乎不是本机函数,因此不起作用。

有没有办法从POSTGRES中的字符串中提取值?

谢谢

由于您正在运行的Amazon Redshift基于Postgres 8.0.2构建,并且不支持许多Postgres函数,因此最好查看文档以了解实际可用的功能。

SUBSTRING函数的签名与您使用它的方式不同,应该是这样的:

select
substring(URL from 14)
from my_table
limit 10

这将产生从第14个字符到结尾的URL部分。

另外,如果甚至不支持此版本的SUBSTRING,请尝试使用建议的REGEXP_SUBSTR

select
regexp_substr(URL, '=.*')
from my_table
limit 10

这将从“ =”开始返回URL的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM