如何解决presto替换多个字符
我有一个字符串,想删除一组字符。有比链接多个replace()
更好的方法吗?
我想出了以下内容,但需要为每个字符调用replace()
:
WITH my_table(id,a_string) AS (
VALUES
(1,'test{' || CHR(39) || '}xyz'),(2,'x'),(3,'{y}'),(1,'z'),'none'),'none' || CHR(39) || 'xyz')
)
SELECT replace(replace(replace(a_string,CHR(39)),'{'),'}') FROM my_table
这是一个最小的示例,我要转义更多的字符,因此我正在寻找实现这一目标的详细方法。我在直接支持此功能的文档中找不到字符串函数。
谢谢。
解决方法
您可以使用regexp_replace
删除多个字符:
presto> WITH my_table(id,a_string) AS (
-> VALUES
-> (1,'test{' || CHR(39) || '}xyz'),-> (2,'x'),-> (3,'{y}'),-> (1,'z'),'none'),'none' || CHR(39) || 'xyz')
-> )
-> SELECT regexp_replace(a_string,'[{}'']') FROM my_table;
_col0
---------
testxyz
x
y
z
none
nonexyz
(6 rows)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。