Sélection par expression

Il existe 2 façons d'accéder à la sélection par expression

Méthode1ère méthode 

  • Cliquer sur la couche dans le panneau contrôle des couches pour la rendre active

  • Dans la barre d'outils Attributs, cliquer sur le bouton ε (epsilon) [Sélectionne les entités en utilisant une expression] :

Barre d'outils attributs

Méthode2ème méthode

  • Sélectionner la couche dans le panneau contrôle des couches

  • Clic droit et ouvrir la table d'attributs

  • Dans la table attributaire, cliquer sur le bouton ε [Sélectionne les entités en utilisant une expression] :

Table attributaire

La boîte de dialogue Sélection par expression se présente comme suit :

Boîte de dialogue Sélection par expression

La boîte de dialogue Sélection par expression (qui est très proche du calculateur de champs) est composée des zones suivantes  :

1 Liste des fonctions

Un vaste choix est offert, dont :

  • Opérateurs booléens, arithmétiques,

  • Branchements conditionnels,

  • Fonctions mathématiques, de conversion de format, de date

  • Fonctions de traitement de chaînes de caractères,

  • Fonctions de géométrie (opérateurs spatiaux et géotraitement),

  • Fonctions d'information sur les enregistrements de la table attributaire, et de gestion des champs de la table attributaire et des valeurs des champs pour les entités de la couche

L'ensemble des fonctions offertes est donc le même que pour la calculatrice de champ qui est présentée dans la formation 'perfectionnement'.

Une aide dans la boite de dialogue donne la syntaxe d'utilisation des fonctions.

Remarque

Parmi les opérateurs logiques proposés il y a par exemple le IN :

‘'Nom_du_champ'' IN (valeur1 , valeur2, valeur3)

2 Cadre Opérateurs

Quelques opérateurs principaux utilisés le plus couramment dans les requêtes ainsi que les parenthèses ouvrante et fermante figurent sous forme de boutons à cliquer. Pour ajouter un opérateur ou une parenthèse à la requête, cliquez sur le bouton correspondant.

Remarque

Les opérateurs peuvent aussi être choisis en double-cliquant dans la section Opérateurs de la liste des fonctions

3 Cadre Expression

Ce cadre contient l'expression littérale de la sélection.

4 Menu déroulant Sélection

Menu déroulant Sélection

Pour commencer, nous utiliserons le premier item du menu déroulant, la Sélection

Les autres choix possibles seront présentés un peu plus loin.

Une 5ème zone n'apparaît pas à ce stade, mais est activée lorsqu'on clique sur un champ dans le cadre Liste de fonctions :

Cadre Valeurs du champ sélectionné

5 Cadre Valeurs du champ sélectionné

Comme dans le constructeur de requête, ce cadre permet de lister tout ou partie des valeurs (attributs) du champ sélectionné précédemment.

Pour afficher toutes les valeurs qui existent dans le champ (dans la colonne de la table attributaire) cliquer sur le bouton ‘Toutes'' en dessous du cadre.

Exemple

Reprenons l'exemple précédent où nous souhaitions sélectionner les communes du canton de MALICORNE-SUR-SARTHE dans la couche COMMUNE (BD_TOPO/H_ADMINISTRATIF)

L'enchaînement des opérations est identique :

A Choix du champ

Dans le cadre Liste des fonctions, dans la branche Champs et valeurs, double-cliquer sur le champ CANTON.

La chaîne de caractères CANTON est écrite (en couleur) dans le cadre expression, entourée de guillemets :

Choix du champ

2 Choix de l'opérateur

Cliquer sur le bouton = dans le cadre Opérateurs.

L'opérateur = apparaît dans le cadre expression, entouré par des espaces :

Choix de l'opérateur

3 Choix de la valeur

Après avoir cliqué sur le bouton ‘Toutes' pour afficher toutes les valeurs dans le cadre Valeurs de champs, double-cliquer sur 'MALICORNE-SUR-SARTHE'.

Choix de la valeur

Remarque

Dans la sélection par expression, les valeurs sont affichées entourées de simples quotes , ce n'est pas le cas dans le constructeur de requête.

La chaîne de caractères est écrite dans le cadre expression avec une couleur particulière, ce qui facilite la lecture de l'expression (les couleurs permettent de distinguer les champs, les opérateurs et les valeurs.

Un clic sur le bouton Sélection et les entités sélectionnées apparaissent en jaune dans la carte :

Sélection des entités de la couche COMMUNE

Les autres entités de la couche sont toujours apparentes, contrairement à ce qui se passe avec le constructeur de requête.

Dans la table attributaire aussi, toutes les entités de la couche sont affichées et les entités sélectionnées apparaissent en surbrillance :

Table attributaire : entités sélectionnées

Pour enregistrer les entités sélectionnées comme une nouvelle couche, faire un clic droit sur la couche et cliquer sur “Exporter > Sauvegarder les entités sélectionnées sous...”

Pour déselectionner les entités, cliquer sur le bouton ‘Déselectionner toutes les entités' dans la barre d'outils attributs ou dans la table attributaire :

Bouton Tout désélectionner

Remarque

La sélection par expression n'est pas sauvegardée en enregistrant le projet.

Cependant, une fois exécutée, elle est enregistrée dans le cadre ‘Liste des fonctions' de la boîte de dialogue ‘Sélection par expression', dans le répertoire ‘Récent (Selection)' . Un double-clic sur la requête enregistrée et l'expression est affichée dans le cadre Expression.

Menu déroulant sélection dans la sélection par expression

Menu déroulant Sélection

Ce menu propose en plus de la sélection les actions suivantes :

Enlever, Ajouter la sélection :

Permet d'ajouter ou d'enlever une autre sélection réalisée après une première sélection.

Par exemple si l'on a d'abord sélectionné les communes du canton de Malicorne-sur-Sarthe, il est possible de désélectionner celles qui ont moins de 500 habitants (‘'POPUL" < 500) :

Désélectionner des entités dans une sélection

Les communes de Bousse et de Ligron ne sont plus sélectionnées car elles ont moins de 500 habitants.

On peut les rajouter à la sélection en cliquant sur 'Ajouter à la sélection actuelle'

Filtrer la sélection courante

A l'inverse, on peut sélectionner les communes de moins de 500 habitants du canton de Malicorne-sur-Sarthe en filtrant la sélection préalable :

Filtrer la sélection courante

Les communes de Bousse et de Ligron sont sélectionnées parmi celles du canton de Malicorne-sur-Sarthe car elles ont moins de 500 habitants.

Il est possible de remplacer cet enchaînement de 2 sélections consécutives par une seule sélection conjuguant les deux précédentes en une seule expression.

Le tableau ci-dessous présente une synthèse utile à la compréhension des filtres et sélections attributaires dans QGIS :

Synthèse des filtres et sélections attributaires

Complément

Sélectionner / filtrer les entités en utilisant le formulaire de la table attributaire.

Il est possible de sélectionner des entités répondant à un ou des critères attributaires simples avec le bouton de la barre d'outils de la fenêtre attributaire.

Quand ce bouton est actif, il est possible de donner des critères de sélection avec un 'opérateur' à choisir dans le menu déroulant en face de chaque champs :

La liste des 'opérateurs' varie selon le type de champs (alphanumérique, entier, réel...). Les opérateurs 'Commence par' et 'se termine par' ne sont disponible que depuis QGIS 3.0.

Exemple pour choisir "Les communes du canton de MALICORNE-SUR-SARTHE dont la population est inférieure à 500 habitants", on commence à entrer le nom et la liste des valeurs correspondantes apparaît :

On peut ensuite choisir de sélectionner les entités répondant à ce critère avec le bouton 'sélectionner les entités', puis le cas échéant faire un zoom sur la sélection avec le bouton

ou Filtrer les entités, ce qui filtre l'affichage dans la table attributaire :

On remarquera que l'opération a générée automatiquement un filtre que l'on aurait pu créer par une expression (filtre avancé).

Cette méthode est plus simple à appréhender pour des utilisateurs occasionnels que la sélection par expression.