使用 Python 指定查询

结构化查询语言 (SQL) 是一种功能强大的语言,可定义一个或多个由属性、运算符和计算组成的条件。例如,假设有一份客户数据表,并要在其中查找去年花费超过 $50,000 且业务类型是餐馆的客户。则可以使用以下表达式选择客户:“Sales > 50000 AND Business_type = 'Restaurant'”。

将查询指定到更新搜索光标时,仅返回满足该查询的记录。一个 SQL 查询代表使用 SQL SELECT 语句对 SQL 数据库中的表进行的单个表查询的一个子集。指定 WHERE 子句的语法与保存数据的基础数据库的语法相同。

下例将搜索光标的行过滤为仅属于特定道路类的道路:

import arcpy

fc = "D:/St_Johns/data.mdb/roads"

# Create a search cursor using an SQL expression
#
rows = arcpy.SearchCursor(fc, "[roadclass] = 2")
for row in rows:
    # Print the name of the residential road
    #
    print row.name

使用带 SQL 表达式的 AddFieldDelimiters

SQL 表达式中使用的字段分隔符因所查询数据的格式而异。例如,文件地理数据库和 shapefile 使用双引号 (" "),个人地理数据库使用方括号 ([ ]),ArcSDE 地理数据库不使用字段分隔符。AddFieldDelimiters 函数可免去一些为确保与 SQL 表达式一起使用的字段分隔符的正确性而进行的推测过程。下例对上述示例进行了扩展,以为 SQL 表达式添加正确的字段分隔符。

import arcpy

fc = "D:/St_Johns/data.mdb/roads"
fieldname = "roadclass"

# Create field name with the proper delimiters
#
delimitedfield = arcpy.AddFieldDelimiters(fc, fieldname)

# Create a search cursor using an SQL expression
#
rows = arcpy.SearchCursor(fc, delimitedfield + " = 2")

for row in rows:
    # Print the name of the residential road
    print row.name

相关主题


7/10/2012