使用 SQL 查询提取特定字母字符
Extract specific alphabetic characters using SQL query
背景: 我在 CentOS 上使用 PostgreSQL 11。我有一个 UTF-8 编码的数据库,在特定的表中我有一些拉丁字符如下 [ÄéÒçòý]
Objective: 我想用标准英文字符替换那些我正在尝试使用以下查询列出那些特定字符但获取所有字符设置:
SELECT name_0 from public.gadm36_0_iso2_iso3 where name_0 ~ '[[:alpha:]]';
我这边正在搜索,也参考了一些。
任何 help/any 的建议都很棒 !!!
也许您正在寻找 unaccent
:
CREATE EXTENSION unaccent;
SELECT unaccent('ÄéÒçòý');
unaccent
----------
AeOcoy
(1 row)
您可以为此使用正则表达式
SELECT 'ÄéÒçòý' ~* '\A[A-Z0-9]*\Z';
上述 SQL 语句的输出应该为 false。所以在你的 where 子句中使用它。
背景: 我在 CentOS 上使用 PostgreSQL 11。我有一个 UTF-8 编码的数据库,在特定的表中我有一些拉丁字符如下 [ÄéÒçòý]
Objective: 我想用标准英文字符替换那些我正在尝试使用以下查询列出那些特定字符但获取所有字符设置:
SELECT name_0 from public.gadm36_0_iso2_iso3 where name_0 ~ '[[:alpha:]]';
我这边正在搜索,也参考了一些
任何 help/any 的建议都很棒 !!!
也许您正在寻找 unaccent
:
CREATE EXTENSION unaccent;
SELECT unaccent('ÄéÒçòý');
unaccent
----------
AeOcoy
(1 row)
您可以为此使用正则表达式
SELECT 'ÄéÒçòý' ~* '\A[A-Z0-9]*\Z';
上述 SQL 语句的输出应该为 false。所以在你的 where 子句中使用它。