You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery Standard SQL如何获取数组的第一个元素?

在BigQuery Standard SQL中获取数组第一个元素的方法

嘿,我之前也纠结过这个问题!其实不用死磕FIRST_VALUE()函数,BigQuery里直接通过数组索引就能轻松拿到第一个元素,而且有几种写法可选:

首先要明确,BigQuery的数组支持两种索引方式:

  • 0-based索引:用OFFSET(n),第一个元素对应n=0
  • 1-based索引:用ORDINAL(n),第一个元素对应n=1,这种更符合日常计数的直觉

针对你给出的示例,直接这样写就可以:

-- 0-based写法,取第一个元素
SELECT SPLIT("hello::hej::hallo::hoi", "::")[OFFSET(0)] AS first_element;

-- 更安全的0-based写法,数组为空时返回NULL而非报错
SELECT SPLIT("hello::hej::hallo::hoi", "::")[SAFE_OFFSET(0)] AS first_element;

-- 1-based写法,更直观
SELECT SPLIT("hello::hej::hallo::hoi", "::")[ORDINAL(1)] AS first_element;

如果是处理表中的数组列,比如你有一张表my_table,其中array_column是数组类型,写法也是一样的:

SELECT array_column[ORDINAL(1)] AS first_element FROM my_table;

这样就能轻松拿到数组的第一个元素啦,比用窗口函数简单多了~

内容的提问来源于stack exchange,提问作者hhh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:45:36