【发布时间】:2020-07-13 08:05:14
【问题描述】:
我需要使用 Amazon Presto 将字符串列的特殊字符转换为“原始”字符。 在 SQL Server 中,我可以使用 TRANSLATE 函数来做到这一点:
select
city_name,
translate(city_name,'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜâêîôûÂÊÎÔÛãẽĩõũÃẼĨÕŨ','aeiouAEIOUaeiouAEIOUaeiouAEIOUaeiouAEIOU') as cityname_raw
FROM cities
这将完全返回我所需要的:
城市名称
戈亚尼亚
圣保罗
帕洛萨
瓦尔泽亚·保利斯塔
city_name_raw
戈亚尼亚
圣保罗
帕洛卡
瓦尔泽亚·保利斯塔
Amazon Presto 中的 TRANSLATE() 函数是否有替代方法?
更新:
正如建议的那样,我使用了很多嵌套替换,并且效果很好:
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(name,'ü','u'),'í','i'),'ê','e'),'ú','u'),'õ','o'),'ô','o'),'ç','c'),'é','e'),'ã','a'),'á','a'),'â','a'),'ó','o')
这不是一个漂亮的查询,但它有效。
【问题讨论】:
-
总是可以使用大量的嵌套替换
-
是的,这似乎是唯一的选择。这正是我的工作方式。这不是一个漂亮的查询,但它有效。感谢您的意见!