[英]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.