在 BigQuery 中拆分字符串并转换为整数

时间:2021-02-06 17:05:19

标签: sql google-bigquery

我有一个简单的问题,但我开始使用 google bq,他们的帮助菜单对我来说太复杂了。

对于某些行,我有一个类似的列:

ANSWER(title of column)
9
10 - Certainly Satisfied.
7 -

我的目标是将该列的前一部分从“-”符号拆分并将其转换为整数。我找到了一些公式,例如 split()、regexp_extract(),但我不确定如何将它们用于我的数据。

提前感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

如果号码总是在前面,可以使用:

select sum(safe.cast((split(answer, '-'))[ordinal(1)] as int64)
from t;

注意:看起来你有空格,所以你可能真的想在空格上拆分:

select sum(safe.cast((split(answer, ' '))[ordinal(1)] as int64)
from t;

答案 1 :(得分:0)

考虑以下选项

select answer, 
  safe_cast(regexp_extract(trim(answer), r'^\d+') as int64) as score
from `project.dataset.table`

如果适用于您问题中的样本数据 - 输出为

enter image description here

相关问题