Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez un tableau à partir d'un ensemble de lignes si elles correspondent aux critères de filtre.
WITH
dataset AS (
SELECT ARRAY[1,2,3,4,5] AS items
)
SELECT array_agg(i) AS array_items
FROM dataset
CROSS JOIN UNNEST(items) AS t(i)
WHERE i > 3
Cette requête renvoie :
+-------------+
| array_items |
+-------------+
| [4, 5] |
+-------------+
Filtrez un tableau selon que l'un de ses éléments contient une valeur spécifique, telle que 2, comme dans cet exemple :
WITH
dataset AS (
SELECT ARRAY
[
ARRAY[1,2,3,4],
ARRAY[5,6,7,8],
ARRAY[9,0]
] AS items
)
SELECT i AS array_items FROM dataset
CROSS JOIN UNNEST(items) AS t(i)
WHERE contains(i, 2)
Cette requête renvoie :
+--------------+
| array_items |
+--------------+
| [1, 2, 3, 4] |
+--------------+
Utiliser la filter
fonction
filter(ARRAY [
list_of_values
],boolean_function
)
Vous pouvez utiliser la filter
fonction sur une ARRAY
expression pour créer un nouveau tableau qui est le sous-ensemble des éléments de list_of_values
for dont la valeur boolean_function
est vraie. La filter
fonction peut être utile dans les cas où vous ne pouvez pas l'UNNEST
utiliser.
L'exemple suivant filtre les valeurs supérieures à zéro dans le tableau [1,0,5,-1]
.
SELECT filter(ARRAY [1,0,5,-1], x -> x>0)
Résultats
[1,5]
L'exemple suivant filtre les valeurs non nulles dans le tableau [-1, NULL,
10, NULL]
.
SELECT filter(ARRAY [-1, NULL, 10, NULL], q -> q IS NOT NULL)
Résultats
[-1,10]