Comment générer une requête

Le générateur de requêtes est utilisé dans les outils Rechercher selon les attributs et la localisation et Filtrer par attributs pour créer des expressions qui répondent aux critères spécifiés.

Création d’une requête

Pour créer une requête, cliquez sur Build new query (Créer une nouvelle requête) dans la fenêtre de l’outil ou dans la boîte de dialogue de l’outil.

Pour commencer, sélectionnez la couche dans laquelle rechercher des entités. Pour l’outil Rechercher selon les attributs et la localisation, cette opération peut être réalisée dans le générateur de requêtes. Pour l’outil Filtrer par attributs, le paramètre des données en entrée doit être renseigné avant de créer la requête.

Ensuite, choisissez si vous souhaitez commencer par une expression attributaire, une expression spatiale (Rechercher selon les attributs et la localisation uniquement) ou un groupe d’expressions.

Si la requête contient plusieurs expressions, vous devez choisir une des options d’appariement suivantes pour les connecter :

  • All of the following are true (Toutes les conditions suivantes sont vraies) : seules les entités qui correspondent à toutes les expressions sont renvoyées. Cette option équivaut à une clause ET.
  • One of the following are true (L’une des conditions suivantes est vraie) : les entités qui correspondent à n’importe laquelle des expressions sont renvoyées. Cette option équivaut à une clause OU.

Expressions attributaires

Chaque requête attributaire inclut un nom de champ, un opérateur et une valeur.

Par exemple, vous pouvez créer une requête sur une couche contenant les données de criminalité d’une ville (vols, incendies criminels, agressions, etc.) pour n’afficher que les vols. Créez une expression attributaire comme suit :

  • Pour le nom du champ, sélectionnez Crime Type (Type de délit).
  • Comme opérateur, sélectionnez equals (est égal à).
  • Comme valeur, écrivez ou sélectionnez Theft (Vol).
Remarque :

Les champs avec des valeurs nulles sont exclus de tous les résultats de requête, sauf si l’opérateur est défini sur is blank (est vide).

Dans la plupart des cas, le générateur de requêtes comprend une liste des valeurs de champ disponibles pour faciliter la création d’une expression précise. La liste n’est pas disponible pour Filtrer par attributs si le jeu de données en entrée est une sortie d’un autre outil. Vous devez saisir la valeur exacte dans la zone en entrée, au lieu de choisir la valeur dans une liste.

Expressions spatiales

Chaque expression spatiale inclut un opérateur et une deuxième couche. Sous la deuxième couche, vous pouvez utiliser le bouton + Expression pour ajouter une expression afin d’affiner les entités de la deuxième couche qui seront utilisées dans l’expression spatiale d’origine.

Par exemple, avec une autre couche représentant les boulangeries, vous pouvez affiner la requête attributaire pour rechercher les vols qui ont eu lieu dans un rayon de 100 mètres autour d’une boutique de donuts. Ajoutez une expression spatiale, comme suit :

  • Pour l’opérateur, choisissez Within a distance of (Dans une distance de) et entrez 100 mètres.
  • Comme couche, sélectionnez la couche des boulangeries.
  • Cliquez sur le bouton + Expression et sélectionnez Attribute expression (Expression attributaire).
  • Dans le groupe d’instructions Where (Où), sélectionnez Shop Type (Type de boutique) comme nom de champ, conservez l’opérateur equals (est égal à), et écrivez ou sélectionnez Donut shops (Boutiques de donuts) comme valeur.

Groupe d’expressions

Pour créer une requête plus complexe, vous pouvez utiliser des groupes d’expressions afin de regrouper plusieurs expressions. La manière dont vous les regroupez détermine ce que vous trouvez. Vous pouvez créer jusqu’à trois niveaux de regroupement.

Par exemple, vous pouvez utiliser des groupes d’expressions pour affiner davantage le filtre des actes criminels décrit ci-avant. Pour afficher à la fois les incendies criminels et les vols signalés à 100 mètres d’une boutique de donuts, vous pouvez créer un groupe d’expressions pour trouver les incendies criminels ou les vols. Dans ce groupe, utilisez l’option One of the following are true (L’une des conditions suivantes est vraie). Ensuite, hors du groupe, ajoutez une expression spatiale pour rechercher les entités qui se trouvent dans un rayon de 100 mètres autour des boutiques de donuts.

Expression de groupe permettant de rechercher les incendies volontaires et les vols dans un rayon de 100 mètres autour des boutiques de donuts

Opérateurs

L’outil Rechercher selon les attributs et la localisation utilise des opérateurs pour les requêtes spatiales et attributaires, tandis que l’outil Filtrer par attributs utilise des opérateurs pour les requêtes attributaires uniquement.

Opérateurs attributaires

Vous pouvez utiliser plusieurs opérateurs pour une requête attributaire, selon si le champ que vous interrogez est catégoriel ou numérique.

Si le champ est une chaîne, vous pouvez utiliser les opérateurs suivants :

  • equals (est égal à) : chaînes correspondant au texte spécifié.
  • does not equal (n’est pas égal à) : chaînes ne correspondant pas au texte spécifié.
  • is a member of (appartient à) : chaînes correspondant à l’une des valeurs de texte spécifiées.
  • is not a member of (n’appartient pas à) : chaînes ne correspondant à aucune des valeurs de texte spécifiées.
  • contains (contient) - Chaînes qui contiennent le texte indiqué.
  • does not contain (ne contient pas) - Chaînes qui ne contiennent pas le texte indiqué.
  • starts with (commence par) - Chaînes commençant par le texte spécifié.
  • does not start with (ne commence pas par) : chaînes ne commençant pas par le texte spécifié.
  • ends with (se termine par) - Chaînes se terminant par le texte spécifié.
  • does not end with (ne se termine pas par) : chaînes ne se terminant pas par le texte spécifié.
  • is blank (est vide) : chaînes qui ne contiennent pas de texte et qui ne sont pas nulles.
  • is not blank (n’est pas vide) : chaînes qui contiennent du texte et qui ne sont pas nulles.
  • is empty string (est une chaîne vide) : chaînes qui sont nulles ou ne contiennent pas de texte.
  • is not empty string (n’est pas une chaîne vide) : chaînes qui contiennent du texte ou sont nulles.

Si le champ est numérique, vous pouvez utiliser les opérateurs suivants :

  • is between (est entre) - Nombres qui sont entre les deux valeurs spécifiées. Les valeurs de limite sont incluses dans les résultats.
  • is not between (n’est pas entre) - Nombres qui ne sont pas entre les deux valeurs spécifiées. Les valeurs de limite ne sont pas incluses dans les résultats.
  • equals (est égal à) : nombres correspondant à la valeur spécifiée.
  • does not equal (n’est pas égal à) : nombres ne correspondant pas à la valeur spécifiée.
  • is a member of (appartient à) : nombres correspondant à l’une des valeurs spécifiées.
  • is not a member of (n’appartient pas à) : nombres ne correspondant à aucune des valeurs spécifiées.
  • is greater than (est supérieur à) - Nombres supérieurs à la valeur spécifiée.
  • is at least (est au moins) - Nombres égaux ou supérieurs à la valeur spécifiée.
  • is less than (est inférieur à) - Nombres inférieurs à la valeur spécifiée.
  • is at most (est au plus) - Nombres inférieurs ou égaux à la valeur spécifiée.
  • is blank (est vide) - Nombres ne correspondant pas à la valeur spécifiée.
  • is not blank (n’est pas vide) - Nombres qui contiennent une valeur.

Si le champ est une date, vous pouvez utiliser les opérateurs suivants :

  • is between (est entre) - Dates comprises entre deux dates spécifiées. Les valeurs de limite sont incluses dans les résultats.
  • is not between (n’est pas entre) - Dates qui ne sont pas comprises entre deux dates spécifiées. Les valeurs de limite ne sont pas incluses dans les résultats.
  • is on (est le) - Dates identiques à la date spécifiée.
  • is not on (n’est pas le) - Dates non identiques à la date spécifiée.
  • is before (est avant) - Dates antérieures à une date spécifiée.
  • is after (est après) - Dates postérieures à une date spécifiée.
  • is blank (est vide) - Dates nulles.
  • is not blank (n’est pas vide)- Dates non nulles.

Opérateurs spatiaux

Les expressions spatiales sont créées en spécifiant des opérateurs tels que completely within (complètement dans) ou intersects (intersecte).

Vous pouvez utiliser les opérateurs spatiaux suivants dans une requête spatiale :

  • Intersecte : si une entité de la première couche intersecte une entité de la deuxième couche, l'entité de la première couche est comprise dans la sortie.
  • N'intersecte pas : si une entité de la première couche intersecte une entité de la deuxième couche, l'entité de la première couche est exclue de la sortie.
  • Within a distance of (Dans une distance de) : une entité de la première couche est sélectionnée (comprise dans la sortie) si une partie se trouve à une certaine distance d’une entité sur la deuxième couche. Par exemple, les parcelles qui se situent à moins de 100 mètres d’une rivière seront intégrées dans la sortie.
  • Not within a distance of (Non dans une distance de) : une entité de la première couche est exclue (non comprise dans la sortie) si elle se trouve à une certaine distance d’une autre entité. Par exemple, les parcelles qui se situent à moins de 100 mètres d’une rivière ne seront pas intégrées dans la sortie. Vous pouvez considérer cette relation comme si l’entité se trouve plus loin que la distance spécifiée.
  • Completely contains (Contient complètement) : si une entité de la première couche contient complètement une entité de la deuxième couche, l’entité de la première couche est comprise dans la sortie.
  • Does not completely contain (Ne contient pas complètement) : si une entité de la première couche ne contient pas complètement une entité de la deuxième couche, l’entité de la première couche est exclue de la sortie.
  • Complètement dans : si une entité de la première couche est complètement à l'intérieur d'une entité sur la deuxième couche, l'entité de la première couche est comprise dans la sortie.
  • Not completely within (Non complètement dans) : si une entité de la première couche est complètement à l’intérieur d’une entité sur la deuxième couche, l’entité de la première couche est exclue de la sortie.
  • Nearest to (Le plus proche) : si une entité de la première couche est la plus proche d’une entité sur la deuxième couche, l’entité de la première couche est comprise dans la sortie.

Dépannage

Les modifications apportées à un jeu de données peuvent invalider une expression valide. Parmi des exemples de modifications susceptibles d’invalider une expression figurent la suppression ou la modification du type d’un champ utilisé dans l’expression, ou la modification de la géométrie d’un jeu de données utilisé dans une expression spatiale. Les expressions non valides ne s’affichent pas dans le générateur de requêtes lorsqu’il est rouvert.