sql 数组三 展平数组
生活随笔
收集整理的這篇文章主要介紹了
sql 数组三 展平数组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
展平數(shù)組
如需將 ARRAY 轉(zhuǎn)換為一組行(即執(zhí)行展平操作),請(qǐng)使用 UNNEST 運(yùn)算符。UNNEST 獲取一個(gè) ARRAY,然后返回一個(gè)表,ARRAY 中的每個(gè)元素均占該表的一行。
由于 UNNEST 破壞了 ARRAY 元素的順序,您可能需要恢復(fù)表中的順序。為此,請(qǐng)使用可選的 WITH OFFSET 子句返回另一個(gè)包含各數(shù)組元素偏移量的列,然后使用 ORDER BY 子句按偏移量對(duì)行進(jìn)行排序。
示例
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 | +----------+--------+請(qǐng)注意,對(duì)于相關(guān)交叉聯(lián)接,UNNEST 運(yùn)算符為可選運(yùn)算符,CROSS JOIN 可表示為逗號(hào)聯(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 数组 四