【发布时间】:2020-10-27 22:08:53
【问题描述】:
我在数据库中有一个列是所有邮政编码。我想使用该列来获取有关特定区域的统计数据。为此,我只想提取邮政编码的第一个非数字字符(B 代表伯明翰,BT 代表贝尔法斯特)。
我可以使用带有 ISNUMERIC 的 CASE WHEN 来查看其他 SQL 格式的解决方案,但该功能在 Presto 中不起作用。有什么解决办法吗?
一如既往,我们将不胜感激任何建议。
非常感谢,
巴里
【问题讨论】:
标签: presto
我在数据库中有一个列是所有邮政编码。我想使用该列来获取有关特定区域的统计数据。为此,我只想提取邮政编码的第一个非数字字符(B 代表伯明翰,BT 代表贝尔法斯特)。
我可以使用带有 ISNUMERIC 的 CASE WHEN 来查看其他 SQL 格式的解决方案,但该功能在 Presto 中不起作用。有什么解决办法吗?
一如既往,我们将不胜感激任何建议。
非常感谢,
巴里
【问题讨论】:
标签: presto
我想你会想看看使用正则表达式函数来提取使用regexp_extract 的非数字字符或使用regex_replace 替换所有非数字字符。
【讨论】:
我设法解决了这个问题
select concat(substr(postcode,1,1), case when substr(postcode,2,1) in ('1','2','3','4','5','6','7','8','9','0') then '' else substr(postcode,2,1) end)
【讨论】: