在对大查询中的列进行 select 时,有没有办法解析 url 字符串?

Is there a way to parse a url string when making a select to the column in big query?

如果我有数据集 test_dataset 和 test_table,并且只想在创建 select 时从 url 中提取 ID 号。有没有办法在标准 bigquery 中做到这一点 sql?

即 table 我有

url_name
http://www.website.com/ids/1234567/subfolder/data
http://www.website.com/ids/2345678/subfolder/data
etc

我想做什么

select DISTINCT(only_ids from url_name) as ids from test_dataset.test_table

# Output
ids
1234567
2345678
etc

您可以使用 REGEXP_EXTRACT 并在您的 url:

中查找数字
WITH data AS (select urls as url from YOUR_TABLE_NAME)
SELECT
  REGEXP_EXTRACT(url, r"([\d]+)")
  AS ids
FROM data;

这将为您提供所需的输出。

Row ids 
1   1234567
2   2345678

您可以在 public documentation.

中找到有关 REGEXP_EXTRACT 函数的更多信息