使用 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