我有一个数组列,我想获取它的第一个N
元素(保持数组数据类型)。有一些不错的方法吗?理想情况下,无需取消嵌套,将array_agg排序并返回到数组。
我也可以这样做(获取前两个元素):
WITH data AS
(
SELECT 1001 as id,['a','b','c'] as array_1
UNION ALL
SELECT 1002 as id,['d','e','f','g'] as array_1
UNION ALL
SELECT 1003 as id,['h','i'] as array_1
)
select *,[array_1[SAFE_OFFSET(0)],array_1[SAFE_OFFSET(1)]] as my_result
from data
但是显然,这不是一个好的解决方案,因为如果某个数组只有1个元素,它将失败。