欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

sql array 数组基本用法(三)

发布时间:2025/4/5 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 sql array 数组基本用法(三) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

展平数组

SELECT * FROM UNNEST(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])AS element WITH OFFSET AS offset ORDER BY offset; elementoffset
foo0
bar1
baz2
qux3
corge4
garply5
waldo6
fred7
如需展平一整列 ARRAY,同时保留每行中其他列的值,请使用 CROSS JOIN 将带有 ARRAY 列的表联接到该 ARRAY 列的 UNNEST 输出。这是一种相互关联的交叉联接:UNNEST 运算符引用了源表中每一行的 ARRAY 列,该列之前曾出现在 FROM 子句中。对于源表中的每一行 N,UNNEST 将行 N 的 ARRAY 展平成一组包含 ARRAY 元素的行,然后 CROSS JOIN 将这组新行与源表的单行 N 联接起来。
WITH sequences AS(SELECT 1 AS id, [0, 1, 1, 2, 3, 5] AS some_numbersUNION ALL SELECT 2 AS id, [2, 4, 8, 16, 32] AS some_numbersUNION ALL SELECT 3 AS id, [5, 10] AS some_numbers) SELECT id, flattened_numbers FROM sequences CROSS JOIN UNNEST(sequences.some_numbers) AS flattened_numbers; idflattened_numbers
10
11
11
12
13
15
22
24
28
216
232
35
310

总结

以上是生活随笔为你收集整理的sql array 数组基本用法(三)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。