Pra*_*les 2 sql 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
)
Run Code Online (Sandbox Code Playgroud)
我们希望拆分可以处理它可以处理的字段 - 并且当它不能处理时简单地为第二个字段生成一个 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
)
Run Code Online (Sandbox Code Playgroud)
带输出
Row Standard_Name Standard_Code
1 MULTUM 123
2 MULTUM234 null
Run Code Online (Sandbox Code Playgroud)
而不是Array index 1 is out of bounds (overflow)原始查询
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |