[英]How to do a "safe" SPLIT in Google BigQuery?
Google BigQuery 上的以下代码引发索引越界错误。
SELECT
SPLIT(CONCEPT_CKI, "!")[OFFSET(0)] AS Standard_Name
,SPLIT(CONCEPT_CKI, "!")[OFFSET(1)] AS Standard_Code
FROM
(
SELECT "MULTUM!123" AS CONCEPT_CKI
UNION ALL
SELECT "MULTUM234" AS CONCEPT_CKI
)
我们希望拆分可以处理它可以处理的字段 - 并且当它不能处理时简单地为第二个字段生成一个 NULL 值。 (即有点类似于 SAFE_CAST 命令在无法执行强制转换时给出 NULL 的方式。)
我们如何对 Google BigQuery 中的字段进行“安全”分割?
使用 SAFE_OFFSET 如下例所示
SELECT
SPLIT(CONCEPT_CKI, "!")[OFFSET(0)] AS Standard_Name
,SPLIT(CONCEPT_CKI, "!")[SAFE_OFFSET(1)] AS Standard_Code
FROM
(
SELECT "MULTUM!123" AS CONCEPT_CKI
UNION ALL
SELECT "MULTUM234" AS CONCEPT_CKI
)
带输出
Row Standard_Name Standard_Code
1 MULTUM 123
2 MULTUM234 null
而不是Array index 1 is out of bounds (overflow)
了原始查询Array index 1 is out of bounds (overflow)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.