我有一个数据库表 (UTF-8),其中有很多不同语言的名称和很多特殊字符。在另一个脚本中,我使用这些名称,其中一部分是替换特殊字符。要知道所有出现的字符,我需要从某个地方获取它们的列表。
是否可以获得列中出现的不同字符列表?PostgreSQL 中的方法是什么?
例如,我有一个带有名称的表:
id | name
-----------
1 | Peter
2 | Andrea
3 | Bob
Run Code Online (Sandbox Code Playgroud)
结果列表将是
petrandbo
Run Code Online (Sandbox Code Playgroud)
顺序不重要,但可以按字母顺序排列
a_h*_*ame 13
select string_agg(c,'')
from (
select distinct regexp_split_to_table(lower(name),'') as c
from data
) t
Run Code Online (Sandbox Code Playgroud)
内部选择为每个字符生成一行,然后外部选择将其聚合为一个长字符串。
如果要对字符进行排序,可以使用 order by 进行聚合 string_agg(c,'' order by c)