ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Especificar una consulta en Python

  • Utilizar AddFieldDelimiters con la expresión de SQL

El lenguaje estructurado de consultas (SQL) es un lenguaje eficaz que se utiliza para definir uno o más criterios que pueden estar compuestos de atributos, operadores y cálculos. Por ejemplo, imagine que tiene una tabla de datos de clientes y desea encontrar los que gastaron más de 50.000 $ con usted el año pasado y cuyo tipo de negocio es un restaurante. Seleccionaría los clientes con esta expresión: "Ventas > 50000 AND Tipo_negocio = 'Restaurante'".

Cuando se especifica una consulta para un cursor de actualización o búsqueda, se devuelven solo los registros que satisfacen esa consulta. Una consulta SQL representa un subconjunto de las consultas de tabla única que se pueden realizar en una tabla de una base de datos SQL utilizando la instrucción SQL SELECT. La sintaxis utilizada para especificar la cláusula WHERE es la misma que la de la base de datos subyacente que contiene los datos.

En el siguiente ejemplo se filtran las filas de un cursor de búsqueda a solo los caminos de una clase de camino concreta:

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])
Sugerencia:

En Python, la construcción de expresiones entre comillas triples es más fácil de leer y entender.

Utilizar AddFieldDelimiters con la expresión de SQL

Los delimitadores de campo utilizados en una expresión de SQL difieren dependiendo del formato de los datos consultados. Por ejemplo, las geodatabases de archivos y los shapefiles utilizan comillas dobles (" "), las geodatabases personales utilizan corchetes ([ ]) y las geodatabases de ArcSDE no utilizan delimitadores de campo. La función AddFieldDelimiters puede eliminar parte del trabajo de averiguar qué delimitadores de campo utilizados con la expresión de SQL son los correctos. El siguiente ejemplo expande el ejemplo anterior para agregar los delimitadores de campo apropiados para la expresión de SQL.

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])

Temas relacionados

  • Acceso a datos utilizando cursores

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

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

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2021 Esri. | Privacidad | Legal