簡體   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