【问题标题】:Ignore numeric values in string, Presto忽略字符串中的数值,Presto
【发布时间】:2020-10-27 22:08:53
【问题描述】:

我在数据库中有一个列是所有邮政编码。我想使用该列来获取有关特定区域的统计数据。为此,我只想提取邮政编码的第一个非数字字符(B 代表伯明翰,BT 代表贝尔法斯特)。

我可以使用带有 ISNUMERIC 的 CASE WHEN 来查看其他 SQL 格式的解决方案,但该功能在 Presto 中不起作用。有什么解决办法吗?

一如既往,我们将不胜感激任何建议。

非常感谢,

巴里

【问题讨论】:

    标签: presto


    【解决方案1】:

    我想你会想看看使用正则表达式函数来提取使用regexp_extract 的非数字字符或使用regex_replace 替换所有非数字字符。

    https://prestodb.io/docs/current/functions/regexp.html

    【讨论】:

    • 嗨,亚当。感谢您在这里的帮助。不幸的是, regexp_extract 似乎以这种方式使用它。使用这个特定品牌的 SQL 似乎无法解决这个问题。
    【解决方案2】:

    我设法解决了这个问题

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      相关资源
      最近更新 更多