BigQuery标准SQL:如何返回数组的第一个值?

hhh*_*hhh 3 sql ansi-sql google-bigquery

小例子

SELECT SPLIT("hello::hej::hallo::hoi", "::")
Run Code Online (Sandbox Code Playgroud)

返回一个数组[hello, hej, hallo, hoi],我要在其中选择第一个元素hello。BG Standard没有提供FIRST,相反FIRST_VALUE(..) OVER(),我无法在上面的示例中使用它,因此

如何使用BigQuery Standard SQL选择数组的第一个值?

Gor*_*off 8

我认为BigQuery中的文档非常不错。您可以在此处了解有关数组的信息

您可以使用OFFSET()ORDINAL()。该方法将是:

select array[offset(0)]
Run Code Online (Sandbox Code Playgroud)

要么

select array[ordinal(1)]
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你有 NULL 值

  select array[safe_offset(0)]
Run Code Online (Sandbox Code Playgroud)