按属性选择图层 (数据管理)

摘要

用于基于属性查询添加、更新或移除选择内容。

使用情况

  • 如果输入为要素类或数据集路径,则此工具将自动创建并返回应用了该工具结果的新图层。

  • 如果输入上存在定义查询,则只会在选择中使用与定义查询相匹配的要素或行。

  • 所选记录的数量将地理处理历史中列出。 单击参数 > 计数以进行访问。 此外,获取计数工具也可以用于计算所选记录的数量。 在 Python 中,也可以通过工具的 Result 对象访问所选记录的数量。

  • SQL 表达式中使用的字段分隔符根据查询数据的格式而有所不同。 例如,文件地理数据库和 shapefile 使用双引号,而企业级地理数据库不使用字段分隔符。 您可以使用 AddFieldDelimiters 函数来帮助确保与 SQL 表达式一起使用的字段分隔符是正确的。

  • 如果输入数据源是要素服务,则建议基础 ArcGIS Server 使用标准化 SQL 查询

参数

标注说明数据类型
输入行

将应用所选内容的数据。

Table View; Raster Layer; Mosaic Layer
选择内容类型
(可选)

指定如何应用所选内容以及如果已存在已选内容要执行的操作。

  • 新建选择内容生成的选择内容将替换当前选择内容。 这是默认设置。
  • 添加到当前选择内容当存在一个选择内容时,会将生成的选择内容添加到当前选择内容中。 如果不存在选择内容,该选项的作用与新选择内容选项的作用相同。
  • 从当前选择内容中移除将生成的选择内容从当前选择内容中移除。 如果不存在选择内容,该选项不起作用。
  • 选择当前选择内容的子集将生成的选择内容与当前选择内容进行组合。 仅两者共有的记录保持选中状态。
  • 切换当前选择内容选择内容将被切换。 将所选的所有记录从当前选择内容中移除,将未选取的所有记录添加到当前选择内容中。 当指定该选项时将忽略表达式参数。
  • 清除当前选择内容选择将被清除或移除。 当指定该选项时将忽略表达式参数。
String
表达式
(可选)

用于选择记录子集的 SQL 表达式。

SQL Expression
反向 Where 子句
(可选)

指定是按原样使用表达式,还是使用与表达式相反的表达式。

  • 未选中 - 将按原样使用查询。 这是默认设置。
  • 选中 - 将反转查询。 如果使用选择类型参数,则将先反转选择,然后再将其与现有选择组合。
Boolean

派生输出

标注说明数据类型
更新的图层或表视图

已应用选择的已更新输入。

Table View; Raster Layer; Feature Layer
计数

所选记录的数量。

Long

arcpy.management.SelectLayerByAttribute(in_layer_or_view, {selection_type}, {where_clause}, {invert_where_clause})
名称说明数据类型
in_layer_or_view

将应用所选内容的数据。

Table View; Raster Layer; Mosaic Layer
selection_type
(可选)

指定如何应用所选内容以及如果已存在已选内容要执行的操作。

  • NEW_SELECTION生成的选择内容将替换当前选择内容。 这是默认设置。
  • ADD_TO_SELECTION当存在一个选择内容时,会将生成的选择内容添加到当前选择内容中。 如果不存在选择内容,该选项的作用与新选择内容选项的作用相同。
  • REMOVE_FROM_SELECTION将生成的选择内容从当前选择内容中移除。 如果不存在选择内容,该选项不起作用。
  • SUBSET_SELECTION将生成的选择内容与当前选择内容进行组合。 仅两者共有的记录保持选中状态。
  • SWITCH_SELECTION选择内容将被切换。 将所选的所有记录从当前选择内容中移除,将未选取的所有记录添加到当前选择内容中。 当指定该选项时将忽略 where_clause 参数。
  • CLEAR_SELECTION选择将被清除或移除。 当指定该选项时将忽略 where_clause 参数。
String
where_clause
(可选)

用于选择记录子集的 SQL 表达式。

SQL Expression
invert_where_clause
(可选)

指定是按原样使用表达式,还是使用与表达式相反的表达式。

  • NON_INVERT将按原样使用查询。 这是默认设置。
  • INVERT将反转查询。 如果使用 selection_type 参数,则将先反转选择,然后再将其与现有选择组合。
Boolean

派生输出

名称说明数据类型
out_layer_or_view

已应用选择的已更新输入。

Table View; Raster Layer; Feature Layer
count

所选记录的数量。

Long

代码示例

SelectLayerByAttribute 示例(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 SelectLayerByAttribute 函数。

import arcpy
arcpy.management.SelectLayerByAttribute("states", "NEW_SELECTION", 
                                        "[NAME] = 'California'")
SelectLayerByAttribute 示例 2(独立脚本)

以下独立脚本显示了如何在工作流中使用 SelectLayerByAttribute 函数,以便根据位置和属性查询提取要素并将其导入一个新要素类中。

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial 
# relationship to another layer and an attribute query

# Import system modules
import arcpy

# Set the workspace
arcpy.env.workspace = 'c:/data/mexico.gdb'

# Select all cities that overlap the chihuahua polygon
chihuahua_cities = arcpy.management.SelectLayerByLocation('cities', 'INTERSECT', 
                                                          'chihuahua', 0, 
                                                          'NEW_SELECTION')

# Within selected features, further select only those cities with a 
# population > 10,000   
arcpy.management.SelectLayerByAttribute(chihuahua_cities, 'SUBSET_SELECTION', 
                                        '"population" > 10000')

# Write the selected features to a new feature class
arcpy.management.CopyFeatures(chihuahua_cities, 'chihuahua_10000plus')

环境

此工具不使用任何地理处理环境。