如何在 regex_replace() 中使用 db 列名 - presto
Posted
技术标签:
【中文标题】如何在 regex_replace() 中使用 db 列名 - presto【英文标题】:how to use db column name in regex_replace() - presto 【发布时间】:2021-11-14 17:21:01 【问题描述】:我是 presto 的新手,我希望在特定的 db 列上使用 regex_replace 而不是字符串。 例如:替换“描述”列中的所有条目,该列以数字开头,后跟“table1”中的空格
有人可以帮忙举个例子吗?
我试过这个:
select(regexp_replace(col("Description"), '\d+\s')) from table1 但出现错误:“未找到函数”,未注册函数“Col”。
提前致谢!
【问题讨论】:
【参考方案1】:放置列名就足够了,应该添加一个替换字符串。所以,
col("Description") -> Description
-> ,'replace_string'
最终查询应该是这样的:
select regexp_replace(Description, '\d+\s','replace_string' ) from table1 b
【讨论】:
谢谢!!成功了,感谢您的帮助! @swapd 我的赞成票在哪里 :)))) 很遗憾,我没有资格更新,需要 15 个声望才能投票,而我只有一个 :( 感谢您的及时帮助!【参考方案2】:我认为这是你想要的:
SELECT
REGEXP_REPLACE(`Description`, '\d+\s')
FROM `table1`
它们在 SQL 中是可选的,但您使用反引号表示列名和表名,使用撇号表示字符串。
【讨论】:
这太棒了!!谢谢你的帮助!反引号对我不起作用,但只是带引号的列名。以上是关于如何在 regex_replace() 中使用 db 列名 - presto的主要内容,如果未能解决你的问题,请参考以下文章
Postgres Regex_Replace:在替换字符串中使用模式
smarty正则表达式替换regex_replace如何匹配
我正在尝试使用 regex_replace 命令提取子字符串。我想在这里提取“SWIFTInward”