根据选择生成定义查询 (数据管理)

摘要

根据图层或表中选定的要素或行生成定义查询(SQL 格式)。

使用情况

  • 必须对输入内容进行有效选择。

  • 输入图层或表视图必须存在于地图或场景中。

  • 定义查询子句的最大值限制为 1,000 个值。 若选择的值超过 1,000 个,生成的定义查询将包含多个子句。

  • 当图层包含 GlobalID 字段且生成方法参数设置为匹配选择时,将使用 GlobalID 字段替代 ObjectID 字段。 如果生成方法参数设置为使用字段值,GlobalID 字段将不会出现在参数列表中。

  • 仅当生成方法参数设置为使用字段值且输入的图层或表已有活动定义查询时,追加活动查询参数才可用。 可以通过查看图层或表的属性来确定当前的活动查询。

  • 如果选中覆盖 Where 子句参数,但未修改或指定 Where 子句参数值,工具将使用默认生成的定义查询。

参数

标注说明数据类型
输入表

生成定义查询所依赖的图层或表视图。

Table View
生成方法
(可选)

指定将用于生成定义查询的方法。

  • 匹配选择输入表的 ObjectID 字段(或 GlobalID 字段,如有)将用于生成包含所选值的查询。 这是默认设置。
  • 使用字段值字段参数值将用于生成包含所选值的查询。
String
字段
(可选)

表或表视图中用于生成查询值的字段。 当生成方法参数设置为使用字段值时,此参数为必需项。

Field
查询名称
(可选)

生成的查询的唯一名称。

String
反向 Where 子句
(可选)

指定生成的定义查询(where 子句)是反转包含未选择的值,还是包含已选择的值。

  • 选中 - where 子句将反转。
  • 未选中 - where 子句不反转。 这是默认设置。

Boolean
追加活动查询
(可选)

指定生成的定义查询是否将追加到现有的活动查询中。 当图层或表已有活动定义查询且生成方法参数设置为使用字段值时,此参数可用。

  • 选中 - 生成的定义查询将追加到现有活动查询中。
  • 未选中 - 生成的定义查询不会追加到活动查询中。 这是默认设置。

Boolean
覆盖 Where 子句
(可选)

指定生成的定义查询(where 子句)是否可以在生成之前显示并通过 Where 子句参数进行修改。

  • 选中 - where 子句将在生成之前显示,并可修改。
  • 未选中 - where 子句无法修改。 这是默认设置。

Boolean
Where 子句
(可选)

生成的定义查询 SQL 表达式基于其他参数值。 有关 SQL 语法的详细信息,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考

SQL Expression

派生输出

标注说明数据类型
已更新的表

更新后的输入内容将带有生成的定义查询。

Feature Layer, Table View

arcpy.management.GenerateDefinitionQueryFromSelection(in_table, {method}, {field}, {query_name}, {invert_where_clause}, {append_active_query}, {overwrite_where_clause}, {where_clause})
名称说明数据类型
in_table

生成定义查询所依赖的图层或表视图。

Table View
method
(可选)

指定将用于生成定义查询的方法。

  • MATCH_SELECTION输入表的 ObjectID 字段(或 GlobalID 字段,如有)将用于生成包含所选值的查询。 这是默认设置。
  • USE_FIELD_VALUESfield 参数值将用于生成包含所选值的查询。
String
field
(可选)

表或表视图中用于生成查询值的字段。 当将 method 参数设置为 USE_FIELD_VALUES 时,此参数为必需项。

Field
query_name
(可选)

生成的查询的唯一名称。

String
invert_where_clause
(可选)

指定生成的定义查询(where 子句)是反转包含未选择的值,还是包含已选择的值。

  • INVERTwhere 子句将反转。
  • NON_INVERTwhere 子句不反转。 这是默认设置。
Boolean
append_active_query
(可选)

指定生成的定义查询是否将追加到现有的活动查询中。 当图层或表已有活动定义查询且 method 参数设置为 USE_FIELD_VALUES 时,此参数可用。

  • APPEND生成的定义查询将追加到现有活动查询中。
  • NOT_APPEND生成的定义查询不会追加到活动查询中。 这是默认设置。
Boolean
overwrite_where_clause
(可选)

指定生成的定义查询(where 子句)是否可以在生成之前通过 where_clause 参数进行修改。

  • OVERWRITEwhere 子句在生成之前可修改。
  • NOT_OVERWRITEwhere 子句无法修改。 这是默认设置。
Boolean
where_clause
(可选)

定义查询将覆盖其他参数值。 有关 SQL 语法的详细信息,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考

SQL Expression

派生输出

名称说明数据类型
out_table

更新后的输入内容将带有生成的定义查询。

Feature Layer, Table View

代码示例

GenerateDefinitionQueryFromSelection 示例(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"

# Set local variables
in_table = "WisconsinAirports.lyrx"
where_clause = '"TRAFFICCOUNT" >= \'100\''

# Run the tool
arcpy.management.GenerateDefinitionQueryFromSelection(
    in_table,
    "MATCH_SELECTION",
    "MyPythonQueryName",
    "NON_INVERT",
    "NOT_APPEND",
    "OVERWRITE",
    where_clause)

环境

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

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题