Layer nach Attributen auswählen (Data Management)

Zusammenfassung

Hiermit wird eine Auswahl in einem Layer oder einer Tabellensicht auf Grundlage einer Attributabfrage hinzugefügt, aktualisiert oder entfernt.

Verwendung

Syntax

SelectLayerByAttribute_management (in_layer_or_view, {selection_type}, {where_clause})
ParameterErläuterungDatentyp
in_layer_or_view

Der Feature-Layer oder die Tabellensicht, auf die die Auswahl angewendet wird.

Als Eingabe sind ein Layer oder eine Tabellensicht aus dem ArcMap-Inhaltsverzeichnis oder in ArcCatalog oder einem Skript mithilfe der Werkzeuge "Feature-Layer erstellen" und "Tabellensicht erstellen" erstellte Layer oder Tabellensichten zulässig.

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

Legt fest, wie die Auswahl angewendet wird, und welche Aktion ausgeführt wird, wenn bereits eine Auswahl vorhanden ist.

  • NEW_SELECTIONDie getätigte Auswahl ersetzt eine bestehende Auswahl. Dies ist die Standardeinstellung.
  • ADD_TO_SELECTIONDie getätigte Auswahl wird der bestehenden Auswahl hinzugefügt (wenn eine vorhanden ist). Wenn keine Auswahl vorhanden ist, entspricht diese Option der Option "NEW_SELECTION".
  • REMOVE_FROM_SELECTIONDie getätigte Auswahl wird aus einer bestehenden Auswahl entfernt. Wenn keine Auswahl vorhanden ist, ist diese Option irrelevant.
  • SUBSET_SELECTIONDie getätigte Auswahl wird mit der bestehenden Auswahl kombiniert. Nur Datensätze, die in beiden Auswahlen vorhanden sind, werden ausgewählt.
  • SWITCH_SELECTIONDie Auswahl wird umgekehrt. Alle bisher ausgewählten Datensätze werden von der Auswahl entfernt und alle bisher nicht ausgewählten Datensätze werden der Auswahl hinzugefügt. Wenn diese Option aktiviert ist, wird der angegebene Ausdruck ignoriert.
  • CLEAR_SELECTIONDie getätigte Auswahl wird zurückgesetzt oder gelöscht. Wenn diese Option aktiviert ist, wird der angegebene Ausdruck ignoriert.
String
where_clause
(optional)

Ein SQL-Ausdruck, mit dem eine Teilmenge der Datensätze ausgewählt wird. Die genaue Syntax für den Ausdruck hängt von der Datenquelle ab. Wenn Sie beispielsweise File- oder ArcSDE-Geodatabases, Shapefiles, Coverages oder dBASE-/INFO-Tabellen abfragen, schließen Sie Feldnamen in doppelte Anführungszeichen ein:

"MY_FIELD"

Wenn Sie Personal-Geodatabases abfragen, schließen Sie die Felder in eckige Klammern ein:

[MY_FIELD]

In Python werden Zeichenfolgen in zusammenpassende einfache oder doppelte Anführungszeichen eingeschlossen. Um eine Zeichenfolge zu erstellen, die Anführungszeichen enthält (wie bei einer WHERE-Klausel in SQL-Ausdrücken üblich), können Sie die Anführungszeichen (durch einen umgekehrten Schrägstrich) mit Escapezeichen versehen oder die Zeichenfolge mit dreifachem Anführungszeichen versehen. Wenn die gewünschte WHERE-Klausel z. B.

"CITY_NAME" = 'Chicago'

lautet, könnten Sie die ganze Zeichenfolge in doppelte Anführungszeichen einschließen und dann die inneren doppelten Anführungszeichen wie folgt mit Escapezeichen versehen:

" \"CITY_NAME\" = 'Chicago' "

Oder Sie könnten die ganze Zeichenfolge in einfache Anführungszeichen einschließen und dann die inneren einfachen Anführungszeichen wie folgt mit Escapezeichen versehen:

' "CITY_NAME" = \'Chicago\' '

Oder Sie könnten die ganze Zeichenfolge in dreifache Anführungszeichen ohne Escapezeichen einschließen:

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

Weitere Informationen zur SQL-Syntax und zu den Unterschieden zwischen Datenquellen finden Sie im Hilfethema SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke.

SQL Expression

Codebeispiel

Select Layer By Attribute - Beispiel (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "SelectLayerByAttribute" im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Select Layer By Attribute - Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript zeigt, wie mit der Funktion "SelectLayerByAttributes" Features auf Grundlage von Position und einer Attributabfrage in eine neue Feature-Class extrahiert werden.

# 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")
 

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Ja
ArcEditor: Ja
ArcInfo: Ja

11/13/2014