我在表格中有 url 数据。我想创建一个显示二级 (sld) 和顶级域 (tld) 以及子域的视图。如何在 ANSI SQL 中提取它?我使用的数据库只支持ansi sql,没有reverse等很酷的功能。
这是数据:
TLD = -- The top-level domain (.com, .org, .info, .us)
SLD = -- The second-level domain (twitter, yahoo, facebook, google) second part of URL
SUBDOMAIN = -- The subdomain domain (www, search.google, search.espn) first part of URL // tricky
这是我正在使用的逻辑。但我无法正确获取子域。我想在提取 TLD 和 SLD 后反转并获取剩余部分,但 Vertica 不支持反转功能。
这是查询和示例数据(注意:SPLIT_PART 在指定字符处拆分字符串):
select COALESCE(SPLIT_PART(URL, '.', 3), SPLIT_PART(URL, '.', 2)) as tld,
SPLIT_PART(URL, '.', 2) as sld,
SPLIT_PART(URL, '.', 1) as subdomain from URL_table
该表有 2 列,日期和 URL 以下是示例 URL:
search.mywebsearch.com (TLD = com, SLD = mywebsearch, subdomain = search)
search.earthlink.net
topix.com
main.welcomescreen.intrepid.com
ad.yieldmanager.com
google.com
news.google.com