Выбрать в слое по атрибуту (Управление данными)

Уровень лицензии:BasicStandardAdvanced

Резюме

Добавляет, обновляет или удаляет выборку на слое или представлении таблицы на основе атрибутивного запроса.

Использование

Синтаксис

SelectLayerByAttribute_management (in_layer_or_view, {selection_type}, {where_clause})
ПараметрОбъяснениеТип данных
in_layer_or_view

Слой пространственных объектов или представление таблицы, к которому будет применена выборка.

Входными данными может быть слой или представление таблицы в таблице содержания ArcMap или слой или представление таблицы, созданные в ArcCatalog или в скриптах с помощью инструментов Создать векторный слой (Make Feature Layer) или Создать представление таблицы (Make Table View).

Table View; Raster Layer; Mosaic Layer
selection_type
(дополнительно)

Определяет, как будет применятся выборка и что произойдет, если выборка уже существует.

  • NEW_SELECTIONРезультирующая выборка заменяет любую существующую выборку. Это значение по умолчанию.
  • ADD_TO_SELECTIONРезультирующая выборка добавляется к существующей выборке, если таковая существует. Если никакой выборки не существует, данная опция работает так же, как опция NEW_SELECTION.
  • REMOVE_FROM_SELECTIONРезультирующая выборка удаляется из существующей выборки. Если во входном слое объекты не были выбраны, выбор данной опции не приведет ни к какому результату.
  • SUBSET_SELECTIONРезультирующая выборка комбинируется с существующей выборкой. Выбранными останутся только те записи, которые являются общими для обеих выборок.
  • SWITCH_SELECTIONПереключает выборку. Все записи, которые были выбраны, удаляются из выборки, а все невыбранные записи становятся выбранными. Выражение игнорируется, если установлена эта опция.
  • CLEAR_SELECTIONОчищает или удаляет любую выборку. Выражение игнорируется, если установлена эта опция.
String
where_clause
(дополнительно)

SQL-выражение, использованное для выбора поднабора записей. Синтаксис выражения различается в зависимости от формата данных. Например, если вы строите запрос к файловой или ArcSDE базам геоданных, шейп-файлам, покрытиям, dBASE или таблицам INFO, заключите имена полей в двойные кавычки:

"ИМЯ_ПОЛЯ"

Если вы запрашиваете персональную базу геоданных, заключите поля в квадратные скобки:

[ИМЯ_ПОЛЯ]

В Python строковые значения заключаются в соответствующие одинарные или двойные кавычки. Чтобы создать строку с кавычками (что часто требуется при написании условия WHERE в выражениях SQL), можно использовать перед кавычками escape-символ (символ обратной косой черты) или заключить всю строку в три пары кавычек. Например, если требуется написать в условии WHERE

"CITY_NAME" = 'Чикаго',

можно заключить всю строку в двойные кавычки и добавить escape-символ перед внутренними двойными кавычками:

" \"CITY_NAME\" = 'Чикаго' ",

Или можно заключить всю строку в одинарные кавычки и добавить escape-символ перед внутренними одинарными кавычками:

' "CITY_NAME" = \'Чикаго\' '

Или можно заключить всю строку в три пары кавычек и не добавлять escape-символ:

""" "CITY_NAME" = 'Чикаго' """,

Более подробно о синтаксисе SQL и о том, как он различается между источниками данных, смотрите разделы справки: Литература по SQL для выражений запросов, используемых в ArcGIS.

SQL Expression

Пример кода

Выбрать в слое по атрибуту. Пример (окно Python)

Пример скрипта Python для выполнения функции Выбрать в слое по атрибуту (Select Layer By Attribute) с запуском из окна Python в ArcGIS.

import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Выбрать в слое по атрибуту. Пример 2 (автономный скрипт)

Пример скрипта Python для выполнения функции Выбрать в слое по атрибуту (Select Layer By Attribute) в рабочем потоке, чтобы извлекать пространственные объекты в новый класс пространственных объектов на основе местоположения и атрибутивного запроса.

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

Параметры среды

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013