我正在尝试运行以下GooleCould的BigQuery:
select REGEXP_REPLACE(SPLIT(site, "=")[OFFSET(1)], r'%\d+', ' ')
from some_db
where site = 'something'
and STARTS_WITH(site, 'XXX')
在执行过程中,出现以下错误:
数组索引1超出范围(溢出)
在使用AWS Athena时,我曾经使用 try 语句解决此类错误,但是找不到与BigQuery等效的东西。
我应该如何处理异常?
答案 0 :(得分:2)
您应该使用SAFE_OFFSET而不是OFFSET
select REGEXP_REPLACE(SPLIT(site, "=")[SAFE_OFFSET(1)], r'%\d+', ' ')
from some_db
where site = 'something'
and STARTS_WITH(site, 'XXX')
关于更常见的try / catch问题-BigQuery没有一个-但有一个SAFE前缀,可以在大多数函数中用作SAFE.function_name()-https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#safe-prefix