ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Festlegen einer Abfrage in Python

  • Verwenden von "AddFieldDelimiters" mit dem SQL-Ausdruck

Structured Query Language (SQL) ist eine leistungsfähige Sprache, die zur Festlegung eines oder mehrerer Kriterien verwendet wird. Diese Kriterien bestehen aus Attributen, Operatoren und Berechnungen. Angenommen, Sie verfügen über eine Tabelle mit Kundendaten und möchten die Kunden ermitteln, die im letzten Jahr mehr als 50.000 EUR ausgegeben haben und deren Geschäftstyp "Restaurant" ist. Dazu wählen Sie die Kunden mit folgendem Ausdruck aus: "Sales > 50000 AND Business_type = 'Restaurant'".

Wenn eine Abfrage für einen Aktualisierungs- oder Such-Cursor angegeben wird, werden nur die Datensätze zurückgegeben, die die Abfragekriterien erfüllen. Eine SQL-Abfrage stellt einen Teil der einzelnen Tabellenabfragen dar, die mit einer SQL SELECT-Anweisung in einer SQL-Datenbank in einer Tabelle vorgenommen werden können. Die Syntax für die WHERE-Klausel entspricht der Syntax der zugrunde liegenden Datenbank, in der sich die Daten befinden.

Im folgenden Beispiel werden die Zeilen eines Such-Cursors so gefiltert, dass nur Straßen einer bestimmten Klasse zurückgegeben werden:

import arcpy

fc = "D:/St_Johns/data.gdb/roads"

# Create a search cursor using an SQL expression
#
cursor = arcpy.da.SearchCursor(fc, ("roadclass", "name"), """"roadclass" = 2""")
for row in cursor:
    # Print the name of the residential road
    #
    print(row[1])
Tipp:

In Python sind Ausdrücke mit dreifachen Anführungszeichen besser lesbar und verständlicher.

Verwenden von "AddFieldDelimiters" mit dem SQL-Ausdruck

Die in einem SQL-Ausdruck verwendeten Feldtrennzeichen unterscheiden sich je nach Format der abgefragten Daten. File-Geodatabases und Shapefiles verwenden beispielsweise Anführungszeichen (" "), Personal-Geodatabases eckige Klammern ([ ]) und ArcSDE-Geodatabases verwenden keine Feldtrennzeichen. Mit der AddFieldDelimiters-Funktion können Sie sicher sein, dass für einen SQL-Ausdruck die richtigen Feldtrennzeichen verwendet werden. Die folgenden Beispiele bauen auf dem obigen Beispiel auf und fügen dem SQL-Ausdruck die richtigen Feldtrennzeichen hinzu.

import arcpy

fc = "D:/St_Johns/data.gdb/roads"
fieldname = "roadclass"

# Create field name with the proper delimiters
#
whereclause = """{} = 2""".format(arcpy.AddFieldDelimiters(fc, fieldname))

# Create a search cursor using an SQL expression
#
cursor = arcpy.da.SearchCursor(fc, ("roadclass", "name"), whereclause)

for row in cursor:
    # Print the name of the residential road
    print(row[1])

Verwandte Themen

  • Zugreifen auf Daten mit Cursorn

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches