首页 > 解决方案 > 如何对 BigQuery 数组进行切片 - 选择除最后一个以外的所有项目

问题描述

我有一个数组

SELECT [1,2,3]

我想选择除最后一个以外的所有元素,所以返回

SELECT [1,2]

我该怎么做?

标签: arraysgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

#standardSQL
WITH test AS (
  SELECT [1,2,3] original_array UNION ALL
  SELECT [101,102,103, 104, 105]
)
SELECT original_array,
  ARRAY(
    SELECT * EXCEPT(OFFSET)
    FROM test.original_array WITH OFFSET
    WHERE OFFSET < ARRAY_LENGTH(test.original_array) - 1
  ) new_array
FROM test

结果

Row original_array  new_array    
1   1               1    
    2               2    
    3        
2   101             101  
    102             102  
    103             103  
    104             104  
    105      

推荐阅读