Presto URL Functions



我需要从数据库中提取URL,在此过程中稍微重新形成。DB中的某些URL具有指定的端口号,有些则没有。我正在使用Presto方便的URL提取功能,例如url_extract_port。

但是,当以下SQL遇到未指定端口的URL时,它会返回null-即使对于实际上并非源为null的行也是如此。(如果我删除url_extract_port函数,我将获得链接值,但没有端口。)

SELECT
  concat(
    url_extract_protocol(link)
    ,'://'
    ,url_extract_host(link)
    ,':'
    ,cast(url_extract_port(link) AS VARCHAR)
  )
   AS  url
 FROM db.schema.urltable
WHERE link is not null

有没有办法在SQL中指定我只想在指定端口时要使用url_extract_port?

coceSce函数解决了问题,使用 url_extract_port 行更改为:

,coalesce(cast(url_extract_port(link) AS VARCHAR),'')

在不存在端口的情况下, url_extract_port 返回null。因此,当如Coce所示所示时,默认值(在这种情况下为一个空字符串)将返回。

相关内容

  • 没有找到相关文章

最新更新