繁体   English   中英

如何在 Google BigQuery 中进行“安全”的 SPLIT?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM