Sélectionner une couche par attributs (Gestion des données)

Récapitulatif

Ajoute, met à jour ou supprime une sélection sur une couche ou une vue tabulaire en fonction d'une requête attributaire.

Utilisation

Syntaxe

SelectLayerByAttribute_management (in_layer_or_view, {selection_type}, {where_clause})
ParamètreExplicationType de données
in_layer_or_view

Couche d'entités ou vue tabulaire à laquelle la sélection s'applique.

L'entrée peut être une couche ou une vue tabulaire dans la table des matières ArcMap, ou une couche ou une vue tabulaire créée dans ArcCatalog ou dans des scripts à l'aide des outils Générer une couche ou Générer une vue tabulaire.

Table View; Raster Layer; Mosaic Layer
selection_type
(Facultatif)

Détermine la manière dont la sélection doit être exécutée et ce qu'il faut faire si une sélection existe déjà.

  • NEW_SELECTIONLa sélection obtenue remplace toute sélection existante. Il s'agit de l'option par défaut.
  • ADD_TO_SELECTIONLa sélection obtenue est ajoutée à l'éventuelle sélection existante. S'il n'existe aucune sélection, elle est identique à celle de l'option NEW_SELECTION.
  • REMOVE_FROM_SELECTIONLa sélection obtenue est supprimée d'une sélection existante. S'il n'existe aucune sélection, cette option ne produit aucun effet.
  • SUBSET_SELECTIONLa sélection obtenue est associée à la sélection existante. Seuls les enregistrements communs aux deux restent sélectionnés.
  • SWITCH_SELECTIONInverse la sélection. Tous les enregistrements qui étaient sélectionnés sont supprimés de la sélection. Tous les enregistrements qui n'étaient pas sélectionnés sont ajoutés à la sélection. L'Expression est ignorée lorsque cette option est spécifiée.
  • CLEAR_SELECTIONEfface ou supprime toute sélection. L'Expression est ignorée lorsque cette option est spécifiée.
String
where_clause
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble d'enregistrements. La syntaxe de l'expression diffère légèrement en fonction de la source des données. Par exemple, lorsque vous interrogez des géodatabases fichier ou ArcSDE, des fichiers de formes, des couvertures, ou des tables dBase ou INFO, placez le nom des champs entre guillemets doubles :

"MY_FIELD"

Si vous interrogez des géodatabases personnelles, placez les champs entre crochets :

[MON_CHAMP]

Dans Python, les chaînes se trouvent entre guillemets simples ou doubles. Pour créer une chaîne contenant des guillemets (comme c'est souvent le cas pour les clauses WHERE dans les expressions SQL), vous pouvez désactiver les guillemets (à l'aide d'une barre oblique inverse) ou placer la chaîne entre guillemets triples. Par exemple, si la clause WHERE souhaitée est

"CITY_NAME" = 'Chicago'

vous pouvez mettre la chaîne entière entre guillemets doubles, puis désactiver les guillemets doubles intérieurs de la manière suivante :

" \"CITY_NAME\" = 'Chicago' "

Ou vous pouvez mettre la chaîne entière entre guillemets simples, puis désactiver les guillemets simples intérieurs de la manière suivante :

' "CITY_NAME" = \'Chicago\' '

Ou vous pouvez mettre la chaîne entière entre guillemets triples sans désactiver les guillemets :

""" "CITY_NAME" = 'Chicago' """

Pour en savoir plus sur la syntaxe SQL et sur ses différences selon les sources de données, reportez-vous à la rubrique d'aide Référence SQL pour les expressions de requête utilisées dans ArcGIS.

SQL Expression

Exemple de code

Exemple d'utilisation de l'outil Sélectionner une couche par attributs (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction SelectLayerByAttribute en mode immédiat.

import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Exemple 2 d'utilisation de l'outil Sélectionner une couche par attributs (script autonome)

Le script autonome suivant indique comment utiliser la fonction SelectLayerByAttribute dans un workflow permettant d'extraire des entités vers une nouvelle classe d'entités selon un emplacement et une requête attributaire.

# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query
# Author: ESRI
 
# Import system modules
import arcpy

# Set the workspace
env.workspace = "c:/data/mexico.gdb"

# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "lyr") 
 
# Select all cities which overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection")

# Within selected features, further select only those cities which have a population > 10,000   
arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ')
 
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")

Environnements

Thèmes connexes

9/12/2013