Sélection attributaire
La sélection par attribut(s) permet de filtrer les entités d'une couche en fonction de valeurs d'attributs.
Le champ de formule est le même que pour la création d'un nouveau champ dans le tableau de données à la différence que la formule construite doit ici renvoyer un booléen : Vrai (True) ou Faux (False). Les entités pour lesquelles la formule renvoie Vrai sont sélectionnées et utilisées pour créer la nouvelle couche de données.
Il est ainsi possible de créer des sélections simples ou des sélections complexes en combinant plusieurs conditions.
Les champs actuels de la couche sont accessibles sous forme de raccourcis (boutons jaunes) ainsi que trois champs spéciaux (boutons verts) :
$count
: le nombre d'entités dans la couche,$id
: l'identifiant unique (et interne) de l'entité,$area
: l'aire de l'entité (si il s'agit d'un polygone).
Plusieurs opérations sont possibles (certaines sont présentes sous forme d'un raccourci - boutons bleus) :
- les opérateurs mathématiques de base (
+
,-
,*
,/
), - des fonctions mathématiques (
sqrt
,exp
,abs
,round
,floor
,ceil
etpower
), - des fonctions de chaînes de caractères (
concat
,substring
,lower
,upper
,trim
etreplace
). - les opérateurs de comparaison (
LIKE
,=
,!=
,>
,>=
,<
et<=
), la négation (NOT
) et les opérations logiques (AND
,OR
), - la construction de conditions (
CASE WHEN ... THEN ... ELSE ... END
).
Exemples de sélections simples
Sélection des entités dont la population est supérieure à 10000
Population > 10000
Sélection des communes appartenant aux départements 75, 92, 93 et 94
Departement IN ('75', '92', '93', '94')
Alternative utilisant des opérateurs logiques :
Departement = '75' OR Departement = '92' OR Departement = '93' OR Departement = '94'
Sélection des entités dont le nom commence par "Saint"
Nom LIKE 'Saint%'
Sélection de l'entité avec le nom "Paris"
Nom = 'Paris'
Exemples de sélections complexes (1)
Ces exemples combinent plusieurs conditions grâce aux opérateurs logiques AND
et OR
.
Sélection des entités dont la population est comprise entre 1000 et 10000
Population >= 1000 AND Population <= 10000
Sélection des communes appartenant aux départements 75, 92, 93 et 94 et dont la population est supérieure à 10000
Departement IN ('75', '92', '93', '94') AND Population > 10000
Sélection des communes du département 94 dont le nom commence par "Saint" et dont la population est supérieure à 10000
Departement = '94' AND Nom LIKE 'Saint%' AND Population > 10000
Exemples de sélections complexes (2)
Il est possible de combiner plusieurs conditions en utilisant des parenthèses pour définir la priorité des opérations. Il est également possible d'utiliser la construction CASE WHEN ... THEN ... ELSE ... END
pour cela.
Sélection des communes du département 94 dont le nom commence par "Saint" ou "Ville" et dont la population est supérieure à 10000
Departement = '94' AND (Nom LIKE 'Saint%' OR Nom LIKE 'Ville%') AND Population > 10000
Sélection des communes du département 94 dont le nom commence par "Saint" ou "Ville" et des communes de n'importe quel département dont la population est comprise entre 1000 et 10000
CASE WHEN Departement = '94' THEN
Nom LIKE 'Saint%' OR Nom LIKE 'Ville%'
ELSE
Population >= 1000 AND Population <= 10000
END