sql 数组三 展平数组
生活随笔
收集整理的這篇文章主要介紹了
sql 数组三 展平数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
展平數(shù)組
如需將 ARRAY 轉(zhuǎn)換為一組行(即執(zhí)行展平操作),請使用 UNNEST 運算符。UNNEST 獲取一個 ARRAY,然后返回一個表,ARRAY 中的每個元素均占該表的一行。
由于 UNNEST 破壞了 ARRAY 元素的順序,您可能需要恢復表中的順序。為此,請使用可選的 WITH OFFSET 子句返回另一個包含各數(shù)組元素偏移量的列,然后使用 ORDER BY 子句按偏移量對行進行排序。
示例
SELECT * FROM UNNEST(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])AS element WITH OFFSET AS offset ORDER BY offset;+----------+--------+ | element | offset | +----------+--------+ | foo | 0 | | bar | 1 | | baz | 2 | | qux | 3 | | corge | 4 | | garply | 5 | | waldo | 6 | | fred | 7 | +----------+--------+請注意,對于相關(guān)交叉聯(lián)接,UNNEST 運算符為可選運算符,CROSS JOIN 可表示為逗號聯(lián)接。上述示例使用此簡寫表示法后變?yōu)?#xff1a;
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, sequences.some_numbers AS flattened_numbers;+------+-------------------+ | id | flattened_numbers | +------+-------------------+ | 1 | 0 | | 1 | 1 | | 1 | 1 | | 1 | 2 | | 1 | 3 | | 1 | 5 | | 2 | 2 | | 2 | 4 | | 2 | 8 | | 2 | 16 | | 2 | 32 | | 3 | 5 | | 3 | 10 | +------+-------------------+總結(jié)
以上是生活随笔為你收集整理的sql 数组三 展平数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql OFFSET 和 ORDINA
- 下一篇: sql 数组 四