sql array 数组基本用法(三)
生活随笔
收集整理的這篇文章主要介紹了
sql array 数组基本用法(三)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
展平數(shù)組
SELECT * FROM UNNEST(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])AS element WITH OFFSET AS offset ORDER BY offset;| foo | 0 |
| bar | 1 |
| baz | 2 |
| qux | 3 |
| corge | 4 |
| garply | 5 |
| waldo | 6 |
| fred | 7 |
如需展平一整列 ARRAY,同時(shí)保留每行中其他列的值,請(qǐng)使用 CROSS JOIN 將帶有 ARRAY 列的表聯(lián)接到該 ARRAY 列的 UNNEST 輸出。這是一種相互關(guān)聯(lián)的交叉聯(lián)接:UNNEST 運(yùn)算符引用了源表中每一行的 ARRAY 列,該列之前曾出現(xiàn)在 FROM 子句中。對(duì)于源表中的每一行 N,UNNEST 將行 N 的 ARRAY 展平成一組包含 ARRAY 元素的行,然后 CROSS JOIN 將這組新行與源表的單行 N 聯(lián)接起來(lái)。
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;| 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 array 数组基本用法(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sql array 数组基本用法(二)
- 下一篇: sql array 数组基本用法(四)