Google bigquery 在大查询中,仅在字符串字段中保留数字

Google bigquery 在大查询中,仅在字符串字段中保留数字,google-bigquery,Google Bigquery,我有一个字段,是电话号码的自由文本输入,我只想保留该字段中的数值,以删除任何空格、符号等。。下面是一些记录的示例: +1 123-123-1234或 (123)123-1234或 (123)123-1234或 123-123-1234等等 下面是我正在尝试的查询,但它只会在字段中包含任何其他字符时返回第一组数字 挑选 noteattributes.value.name作为名称\u类型,REGEXP\u提取(noteattributes.value.value,r'[\d]+')作为名称\u值,顺

我有一个字段,是电话号码的自由文本输入,我只想保留该字段中的数值,以删除任何空格、符号等。。下面是一些记录的示例:

+1 123-123-1234或 (123)123-1234或 (123)123-1234或 123-123-1234等等

下面是我正在尝试的查询,但它只会在字段中包含任何其他字符时返回第一组数字

挑选 noteattributes.value.name作为名称\u类型,REGEXP\u提取(noteattributes.value.value,r'[\d]+')作为名称\u值,顺序\u编号 从测试命令, unnest(注释属性)作为注释属性 其中noteattributes.value.name='Picking Collector Phone'

我的结果是这样的 1234567890或 123或 1.
等等。

您可以使用问题中的示例数据,如下面的示例所示,使用REGEXP_REPLACE函数进行此操作

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '+1 123-123-1234' phone_number UNION ALL
  SELECT '(123)123-1234' UNION ALL
  SELECT '(123) 123-1234' UNION ALL
  SELECT '123-123-1234' 
)
SELECT *, REGEXP_REPLACE(phone_number, r'[^\d]', '') cleaned_phone_number
FROM `project.dataset.table`   
有输出

Row phone_number    cleaned_phone_number     
1   +1 123-123-1234 11231231234  
2   (123)123-1234   1231231234   
3   (123) 123-1234  1231231234   
4   123-123-1234    1231231234