Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Aujourd'hui 12:49

image95
Participant assidu
Date d'inscription: 6 Sep 2014
Messages: 291

QGIS: string_to_array ne fonctionne pas : valeurs NULL

Bonjour,
Avec postgis, j'ai exécuté un script SQL qui contient une section dédiée à un geotraitement d’agrégation :
A partir de plusieurs données sources qui contiennent chacune un id unique, celà permet de récupérer dans un champ d'une nouvelle table "resultat" une agrégation des id pour chaque recouvrement/superposition de polygones :

Ci dessous, l'extrait du script :

Code:

Code:

array_agg(l.id_unique) as data_id_ori

Pour info, concernant cette table postgis, la colonne en sortie est de type bingint[] lorsque je regarde sous pgadmin.
Un extrait ci dessous du résultat :

|                                |
|   data_id_ori             |
--------------------------|
| 27, 26, 17, 6, 1, 2, 15|
|                                 |
|                                 |

Maintenant, sous Qgis, lorsqu'on requête sur ce champ et qu'on souhaite par exemple sélectionner uniquement les valeurs entités pour lesquelles data_id_ori = 1, Qgis sélectionne bien les valeurs 1 mais également les chiffres 1 composant les 17, 15...
Cette limite vient de qgis : le problème est que le tableau d'entier est représenté sous forme de texte. Qgis ne reconnait pas/ne lit pas ce champ comme un tableau de nombres.

J'ai tenté sous qgis d'utiliser la fonction string_to_array qui permet de transformer un tableau représenté par du texte en "vrai" tableau. Mais lors de mes tentatives, j'ai en résultat que des valeurs NULL. Sauriez vous me dire ce qui ne va pas ? Lorsqu'on utile la fonction string_to_array, le type de champ en sortie doit il etre de type entier, flottant, autre ?
Un grand merci pour votre aide.

Dernière modification par image95 (Aujourd'hui 16:16)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Aujourd'hui 14:10

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1207

Re: QGIS: string_to_array ne fonctionne pas : valeurs NULL

Bonjour,

la fonction string_to_array renvoie un tableau de texte. Cela dit vous pouvez le transtyper en tableau d'entier :

Code:

array_foreach(string_to_array('1,2,3'),  to_int(@element) )

Hors ligne

 

#3 Aujourd'hui 16:19

image95
Participant assidu
Date d'inscription: 6 Sep 2014
Messages: 291

Re: QGIS: string_to_array ne fonctionne pas : valeurs NULL

Merci. Je viens de faire un test. Mais de mon coté la colonne output reste toujours avec des valeurs NULL. La colonne source (text type) est "data_id_or" et la colonne output (qui doit être mise à jour) est "data_id_tab" . J'ai joint une capture écran image à mon message initial (premier message, cf ci dessus). Merci.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo