在 Snowflake 的 SELECT 语句中将非 ascii 或非英语字符替换为 ascii 或英语字符

Replacing non-ascii or non-english characters to ascii or english characters within a SELECT Statement in Snowflake

我正在尝试用 Snowflake 中的 English/ascii 对应字符替换 non-english/ascii 个字符。我在 Snowflake 中找到了一种方法。

这是我目前的解决方案:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(columnname,'é','e'),'ê','e'),'ë','e'),'è','e'),'É','E'),'È','E'),'Ê','E'),'Ë','E'),'ð','D'),'Ð','D'),'â','a'),'à','a'),'á','a'),'ã','a'),'æ','a'),'à','a'),'å','a'),'Å','A'),'À','A'),'Á','A'),'Â','A'),'Ã','A'),'Æ','A'),'ä','a'),'Ä','A'),'ï','i'),'î','i'),'ì','i'),'í','i'),'Ì','I'),'Í','I'),'Î','I'),'Ï','I'),'ô','o'),'ò','o'),'ó','o'),'õ','o'),'ø','o'),'Ò','O'),'Ó','O'),'Ô','O'),'Õ','O'),'Ø','O'),'ö','o'),'Ö','O'),'û','u'),'ù','u'),'ú','u'),'Ù','U'),'Ú','U'),'Û','U'),'Ü','U'),'ü','u'),'ñ','n'),'Ñ','N'),'Ç','C'),'ç','c'),'ý','y'),'ÿ','y'),'Ý','Y'),'þ','T'),'Þ','t'),'ß','ss') replacement
FROM mytable; 

如您所见,根据替换语句的数量,它非常简陋且难以阅读。 在 Snowflake 中有更有效的方法吗?请注意,我没有 table 本身的 insert/replace 权限。我需要在 Snowflake 中使用 MySQL 在 SELECT 语句中执行此操作。

如果您想要一个更短的替代方案来替代如此多的替换,而不使用 UDF,那么您在 Snowflake 中有 TRANSLATE()

select translate('Whát Úñé', 'áéñÚ', 'aenU');

-- What Une

否则,这个 UDF 是一个很好的解决方案