【发布时间】:2021-06-10 20:45:45
【问题描述】:
我正在尝试从 Snowflake 中的字符串列中删除所有重音符号。在 MSSQL 中,我可以使用 collate 函数来执行此操作。例如,我在一列中有这个字符串:'JESÚSSMITH12345'。我想去掉 U 上方的重音:
在 MSSQL 中,我可以执行以下操作:
select ('JESÚSSMITH12345' Collate SQL_Latin1_General_CP1253_CI_AI) as identifier
返回:JESUSSMITH12345
但是,除了使用 TRANSLATE 函数之外,我在 Snowflake 中找不到执行此操作的方法。使用 TRANSLATE 函数不是一个好的解决方案,因为我必须定义每个可能的带有重音符号的字母来进行翻译。例如,这适用于 Snowflake:
select translate('JESÚSSMITH12345', 'Ú', 'U');
返回:JESUSSMITH12345
但是,如果一列包含除带有重音符号的 U 以外的任何值,我必须将其添加到我的翻译中。这并不理想。
使用 Snowflake 中的 collate 函数,即使使用“ai”(也称为不区分重音),这仍会返回带有重音 U 的字符串。
例如在雪花中:
select collate('JESÚSSMITH12345', 'en-ai');
返回:JESÚSSMITH12345
【问题讨论】:
标签: sql snowflake-cloud-data-platform