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