#1 Fri 12 February 2021 12:13
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
QGIS: Filtrer les donnees
Bonjour,
Dans une table attributaire, j'ai un champ qui contient des valeurs "rondes" (ex : 110.00, 111.00,..) et d'autres valeurs qui ne le sont pas (110.50, 111.50,...)
J'aimerais ne sélectionner que les valeurs rondes à l'aide d'un filtre (ou autre chose...je ne serai pas difficile ;-))
Existe-t-il un critère du type "ne contient pas" ?
Merci par avance pour votre aide
Hors ligne
#2 Fri 12 February 2021 14:13
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 726
Re: QGIS: Filtrer les donnees
Bonjour,
Une recherche comme "MonChamp" ILIKE '%.50' ferait-elle le travail ?
Cordialement.
Hors ligne
#3 Fri 12 February 2021 15:05
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Filtrer les donnees
Merci pour ta réponse chanteclair mais ça ne fonctionne pas : Il ne trouve aucune valeur :-(
Hors ligne
#4 Fri 12 February 2021 15:59
- Franck2908
- Participant actif
- Date d'inscription: 5 Mar 2010
- Messages: 85
Re: QGIS: Filtrer les donnees
Bonjour,
tu peux essayer "MonChamp"::text like '%.00'
Hors ligne
#5 Fri 12 February 2021 16:13
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Filtrer les donnees
Expression invalide mais peut-être l'ai-je ma encodé. A quoi servent les ::
Hors ligne
#6 Fri 12 February 2021 16:15
- MarineBdu1304
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 18
Re: QGIS: Filtrer les donnees
Bonjour,
Je suis désolée je m'incruste dans le sujet, j'ai une problématique semblable. Dans une couche ponctuelle (de bornes), je voudrais n'afficher que les bornes à un intervalle de 200 ou 500m (donc borne 200, 400, 600, etc... ou 500, 1000, 1500)... J'ai testé avec "mon champ" %200 mais en fait il me calcule le reste entier... donc pas vraiment ce que je cherche...
Merci d'avance pour vos réponses/éclaircissements !
Marine
"On peut juger de la grandeur d'une nation par la manière dont les animaux y sont traités."
Hors ligne
#7 Fri 12 February 2021 18:33
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS: Filtrer les donnees
et avec "monchamp" %200=0?
Hors ligne
#8 Fri 12 February 2021 19:12
- Franck2908
- Participant actif
- Date d'inscription: 5 Mar 2010
- Messages: 85
Re: QGIS: Filtrer les donnees
Expression invalide mais peut-être l'ai-je ma encodé. A quoi servent les ::
les :: servent à transformer ton champ au format integer au format text afin de pouvoir lui appliquer la condition LIKE .
la condition LIKE n'est pas exploitable avec un champ en Integer.
votre champ est de quel format ?
Dernière modification par Franck2908 (Fri 12 February 2021 19:12)
Hors ligne
#9 Fri 12 February 2021 19:27
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS: Filtrer les donnees
Bonjour,
Si les valeurs de votre champ ne sont que des centaines, vous pouvez créer un champ dans lequel vous mettrez avec l'option right, tout ce qui se trouve après le point. 110.00 donnera 00 et 110.50 donnera 50. Ensuite sélection = 00, ce qui vous permettra de sélectionner les valeurs rondes.
Hors ligne
#10 Sat 13 February 2021 00:05
Re: QGIS: Filtrer les donnees
Bonjour,
Sauf erreur, la réponse de Franck :: va marcher en PostgreSQL mais :: n'est pas une syntaxe valide dans le calculateur QGIS.
"MonChamp"::text like '%.00' bien qu'une bonne base doit plutôt être l'expression suivante
Code:
to_string('32.00') LIKE '%.00'
Marine pour tester votre autre cas (multiple de 200 et 500) il faut plutôt faire une double condition en utilisant modulo avec un "OR" comme ceci
Code:
"votre_champ" % 500 = 0 OR "votre_champ" % 200 = 0
Cordialement
Thomas
Hors ligne
#11 Sat 13 February 2021 15:29
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Filtrer les donnees
Bonjour,
J'ai un doute sur le type de votre champ, il est bien en nombre décimal et pas en texte ?
Je demande car vous dites avoir des 00 après le séparateur décimal et en général on ne les voit pas.
Du coup je pense que la solution proposée par ThomasG ne fonctionnera pas si votre champ est numérique car on n'aura pas le .00 après conversion via to_string().
Si votre champ est bien numérique et non texte, vous pouvez passer par un modulo 1, qui permet de récupérer les nombres entiers :
Code:
"votre_champ" % 1 = 0
Hors ligne
#12 Mon 15 February 2021 09:43
- MarineBdu1304
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 18
Re: QGIS: Filtrer les donnees
Bonjour,
Mon champ est de type texte.
La double condition n'a pas marché, voici le message d'erreur affiché : OGR [3] erreur 1: Type mismatch or improper type of arguments to % operator.
Merci beaucoup pour vos suggestions !
"On peut juger de la grandeur d'une nation par la manière dont les animaux y sont traités."
Hors ligne
#13 Mon 15 February 2021 10:53
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Filtrer les donnees
Bonjour,
Mon champ est de type texte.
La double condition n'a pas marché, voici le message d'erreur affiché : OGR [3] erreur 1: Type mismatch or improper type of arguments to % operator.
Merci beaucoup pour vos suggestions !
Bonjour,
Vous utilisez quelle version de QGIS ? Vous appliquez le filtre à quel endroit exactement ?
Je viens de tester sous QGIS 3.10 en paramétrant dans le filtre d'entités du fournisseur de données (Propriétés de la couche > Source / ou clic droit sur la couche > Filtrer)
Ca fonctionne avec
Code:
"mon_champ_texte" % 200 = 0 or "mon_champ_texte" % 500 = 0
Hors ligne
#14 Mon 15 February 2021 11:00
- MarineBdu1304
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 18
Re: QGIS: Filtrer les donnees
Je suis sur la version 3.14.1, j'ai mis le filtre exactement au même endroit que vous pourtant, le message d'erreur apparaît encore. J'ai une collègue qui m'a proposé une autre solution (avec une petite manip intermédiaire) qui fonctionne. Cependant je ne comprends pas ce message d'erreur, si qqn-e trouve une explication, ça m'intéresse !
Merci pour votre aide
"On peut juger de la grandeur d'une nation par la manière dont les animaux y sont traités."
Hors ligne
#15 Mon 15 February 2021 12:04
- Franck2908
- Participant actif
- Date d'inscription: 5 Mar 2010
- Messages: 85
Re: QGIS: Filtrer les donnees
Bonjour,
Sauf erreur, la réponse de Franck :: va marcher en PostgreSQL mais :: n'est pas une syntaxe valide dans le calculateur QGIS.
"MonChamp"::text like '%.00' bien qu'une bonne base doit plutôt être l'expression suivanteCode:
to_string('32.00') LIKE '%.00'Marine pour tester votre autre cas (multiple de 200 et 500) il faut plutôt faire une double condition en utilisant modulo avec un "OR" comme ceci
Code:
"votre_champ" % 500 = 0 OR "votre_champ" % 200 = 0Cordialement
Thomas
Bonjour,
j'avais testé et cela a fonctionné dans QGIS (Propriétés de la couche > Source / ou clic droit sur la couche > Filtrer) mais comme tout est stockée dans Postgres chez moi, c'est peut être pour cela que c'est passé ...
MarineBdu1304, une capture d'écran de la saisie de la condition pourrait nous éclairer.
Dernière modification par Franck2908 (Mon 15 February 2021 12:07)
Hors ligne
#16 Mon 15 February 2021 12:44
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Filtrer les donnees
Je suis sur la version 3.14.1, j'ai mis le filtre exactement au même endroit que vous pourtant, le message d'erreur apparaît encore. J'ai une collègue qui m'a proposé une autre solution (avec une petite manip intermédiaire) qui fonctionne. Cependant je ne comprends pas ce message d'erreur, si qqn-e trouve une explication, ça m'intéresse !
Merci pour votre aide
Quelle est votre source de données ? Shapefile, basé de données...
Hors ligne
#17 Mon 15 February 2021 13:16
- MarineBdu1304
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 18
Re: QGIS: Filtrer les donnees
Voilà une capture d'écran en PJ.
Il s'agit d'une couche shapefile ajoutée depuis un serveur (cadre professionnel)
"On peut juger de la grandeur d'une nation par la manière dont les animaux y sont traités."
Hors ligne
#18 Mon 15 February 2021 13:55
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Filtrer les donnees
Il semble y avoir des souci d'encodage dans votre fichier. Sur le premier champ date on voit un problème de caractère.
Ça ne m'étonnerait pas que ça ait un lien.
Hors ligne