如何在Postgres 9.5中替换多个特殊字符

编程入门 行业动态 更新时间:2024-10-25 12:26:37
本文介绍了如何在Postgres 9.5中替换多个特殊字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个表,其中包含一个可能包含特殊字符的名称列表:

I have a table containing a list of name which might contain special character:

id name 1 Johän 2 Jürgen 3 Janna 4 Üdyr ...

是否存在将每个字符替换为另一个特定字符的功能? (未必是一个不加强调的人)。像这样的东西:

Is there a function that replaces each character for another specific one? (Not necessarily an unaccented one). Something like this:

SELECT id, function('ä,ü',name,'ae,ue'); Result: id name 1 Johaen 2 Juergen 3 Janna 4 UEdyr ...

推荐答案

不,没有此功能。可能不难编写优化的C扩展。但是C语言不一定总是必需的。您可以尝试使用SQL或PLpgSQL函数:

No, there are no this function. Probably is not to hard to write optimized C extension what does it. But C language is not necessary always. You can try SQL or PLpgSQL function:

CREATE OR REPLACE FUNCTION xx(text, text[], text[]) RETURNS text AS $$ SELECT string_agg(coalesce($3[array_position($2, c)],c),'') FROM regexp_split_to_table($1,'') g(c) $$ LANGUAGE sql; postgres=# select xx('Jürgen', ARRAY['ä','ü'], ARRAY['ae','ue']); ┌─────────┐ │ xx │ ╞═════════╡ │ Juergen │ └─────────┘ (1 row)

在我的电脑上在200毫秒内完成6000次转换(但我有PostgreSQL开发人员版本-速度较慢)。

On my comp it does 6000 transformation under 200ms (but I have developer build of PostgreSQL - it is slower).

更多推荐

如何在Postgres 9.5中替换多个特殊字符

本文发布于:2023-10-16 11:51:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1497470.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   特殊字符   如何在   Postgres

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!