【问题标题】:How to replace character accented characters in Snowflake?如何替换雪花中的重音字符?
【发布时间】:2019-12-25 23:46:18
【问题描述】:

我正在尝试将列中的重音字符替换为“普通”字符。

select 'áááããã'

我想要一些返回 'aaaaaa' 的操作。

【问题讨论】:

  • 基本上你在这里要求在 utf8 和 ascii 之间进行转换?

标签: sql snowflake-cloud-data-platform


【解决方案1】:

刚刚和我的一位同事找到了解决方案。

select translate('áááããã','áéíóúãõâêôàç','aeiouaoaeoac')

我们还可以添加lower() 使其适用于更多情况

select translate(lower('ÁÁÁÃÃÃ'),'áéíóúãõâêôàç','aeiouaoaeoac')

【讨论】:

  • 请务必使用不同的Collation 对其进行测试,因为关于translate 的手册中提到了“Collat​​ion Details Arguments with collat​​ion specification 目前不支持。”
【解决方案2】:

还有一种更通用的方法是使用内置的 JavaScript 函数来替换它们:

Remove Diacritics from string in Snowflake

create or replace function REPLACE_DIACRITICS("str" string)
returns string
language javascript
strict immutable
as
$$
    return str.normalize("NFD").replace(/\p{Diacritic}/gu, "");
$$;

select REPLACE_DIACRITICS('ö, é, č => a, o e, c');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2021-03-31
    • 2022-11-29
    • 2017-11-09
    • 2017-12-08
    • 2021-11-01
    • 1970-01-01
    相关资源
    最近更新 更多