Seleccionar capa por atributo (Administración de datos)

Resumen

Agrega, actualiza o quita una selección en una capa o vista de tabla basada en una consulta de atributos.

Uso

Sintaxis

SelectLayerByAttribute_management (in_layer_or_view, {selection_type}, {where_clause})
ParámetroExplicaciónTipo de datos
in_layer_or_view

Capa de entidades o vista de tabla a la que se aplicará la selección.

La entrada puede ser una capa o una vista de tabla de la tabla de contenido de ArcMap, o una capa o vista de tabla creada en ArcCatalog o en secuencias de comandos con las herramientas Crear capa de entidades o Crear vista de tabla.

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

Determina cómo se aplicará la selección y qué hacer si ya existe una selección.

  • NEW_SELECTIONLa selección resultante reemplaza toda selección existente. Esta es la opción predeterminada.
  • ADD_TO_SELECTIONLa selección resultante se agrega a una selección existente, si corresponde. Si no existe ninguna selección, es lo mismo que la opción NEW_SELECTION.
  • REMOVE_FROM_SELECTIONLa selección resultante se quita de una selección existente. Si no existe ninguna selección, esta opción no tendrá efecto.
  • SUBSET_SELECTIONLa selección resultante se combina con una selección existente. Sólo permanecen seleccionados los registros comunes a ambas selecciones.
  • SWITCH_SELECTIONCambia la selección. Todos los registros seleccionados se quitan de la selección y todos los registros no seleccionados se agregan a la selección. La expresión se ignora al especificar esta opción.
  • CLEAR_SELECTIONBorra o quita cualquier selección. La expresión se ignora al especificar esta opción.
String
where_clause
(Opcional)

Una expresión SQL utilizada para seleccionar un subconjunto de registros. La sintaxis para la expresión difiere levemente según la fuente de datos. Por ejemplo, si está consultando shapefiles, coberturas, tablas de dBASE o INFO, o geodatabases de archivos o de ArcSDE, encierre los nombres de campo con comillas dobles:

"MY_FIELD"

Si está consultando geodatabases personales, encierre los campos en corchetes:

[MY_FIELD]

En Python, las cadenas de caracteres están encerradas con comillas simples o dobles. Para crear una cadena de caracteres que consta de comillas (como es común con una cláusula WHERE en las expresiones SQL), puede separar las comillas (usando una barra invertida) o poner comillas triples en la cadena de caracteres. Por ejemplo, si la cláusula WHERE propuesta es

"CITY_NAME" = 'Chicago'

podría encerrar toda la cadena de caracteres entre comillas dobles y después separar las comillas dobles interiores de esta manera:

" \"CITY_NAME\" = 'Chicago' "

O podría encerrar toda la cadena de caracteres entre comillas simples y después separar las comillas simples interiores de esta manera:

' "CITY_NAME" = \'Chicago\' '

O puede encerrar toda la cadena de caracteres entre comillas triples sin separar:

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

Para obtener más información sobre la sintaxis de SQL y cómo difiere entre las fuentes de datos, consulte el tema de ayuda Referencia SQL para las expresiones de consulta utilizadas en ArcGIS.

SQL Expression

Ejemplo de código

Ejemplo de Seleccionar capa por atributo (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función SelectLayerByAttribute en el modo inmediato.

import arcpy arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr") arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Ejemplo 2 de Seleccionar capa por atributo (secuencia de comandos independiente)

La siguiente secuencia de comandos independiente muestra cómo utilizar la función SelectLayerByAttributes en un flujo de trabajo para extraer entidades en una nueva clase de entidad basada en la ubicación y en una consulta de atributos.

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

Entornos

Temas relacionados


7/10/2012