1

Table_1在 Google BigQuery 上有一个表,其中包含一个字符串列str_column。我想编写一个 SQL 查询(与 Google BigQuery 兼容)来提取所有数值str_column并将它们作为新的数值列附加到Table_1. 例如,如果str_column包含first measurement is 22 and the other is 2.5; 我需要提取 22 和 2.5 并将它们保存在新列numerical_val_1numerical_val_2. 理想情况下,新数值列的数量应等于 中数值的最大数量str_column,但如果这太复杂,则提取中的前 2 个数值str_column(因此提取 2 个新列)也可以。有任何想法吗?

4

1 回答 1

2

考虑以下方法

select * from (
  select str_column, offset + 1 as offset, num
  from your_table, unnest(regexp_extract_all(str_column, r'\b([\d.]+)\b')) num with offset
)
pivot (min(num) as numerical_val for offset in (1,2,3))    

如果应用于您的问题中的示例数据 - 输出是

在此处输入图像描述

于 2022-02-01T17:58:08.193 回答