【问题标题】:Extract specific alphabetic characters using SQL query使用 SQL 查询提取特定的字母字符
【发布时间】:2020-11-18 20:51:05
【问题描述】:

背景: 我在 CentOS 上使用 PostgreSQL 11。我有一个使用 UTF-8 编码的数据库,在特定表中我有一些拉丁字符如下 [ÄéÒçòý]

目标:我想用标准英文字符替换那些我正在尝试使用以下查询列出这些特定字符但获取所有字符集:

SELECT name_0 from public.gadm36_0_iso2_iso3 where name_0 ~ '[[:alpha:]]'; 

我正在搜索并参考一些posts

任何帮助/任何建议都会很棒!!!

【问题讨论】:

    标签: sql postgresql utf-8


    【解决方案1】:

    您可以为此使用正则表达式

    SELECT 'ÄéÒçòý' ~* '\A[A-Z0-9]*\Z';

    上述 SQL 语句的输出应为 false。所以在你的 where 子句中使用它。

    【讨论】:

      【解决方案2】:

      也许你正在寻找unaccent

      CREATE EXTENSION unaccent;
      
      SELECT unaccent('ÄéÒçòý');
      
       unaccent 
      ----------
       AeOcoy
      (1 row)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2021-11-16
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 2013-10-19
        • 2017-11-15
        相关资源
        最近更新 更多