免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

12
返回列表 发新帖
楼主: mgy5938
收起左侧

[技术交流] arcgis怎么使用自定义sql语句

  [复制链接]

0

主题

111

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
31
发表于 2021-7-28 14:07 | 显示全部楼层
0202102321023331
回复 支持 反对

使用道具 举报

0

主题

689

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
64
发表于 2021-8-12 16:59 | 显示全部楼层
根据你的需求,目前好像确实没啥好办法,不管是筛选,导出,暗属性选择等,select * from [表1] 这里基本上都是固定的。
有一个办法就是用arcpy。
arcpy.da.searchCursor方法可以选择表(图层)的任意字段,筛选符合要求的要素(表),还可以排序,分组,这些选中的要素或表会存在一个cursor中,利用循环可以进一步操作。
SearchCursor (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {sql_clause})
field_names:相当于select 哪些字段的数据。
where_clause:where后面的sql语句。
sql_clause:包含两个参数,前缀和后缀,前缀支持DISTINCT 和 TOP,后缀支持ORDER BY 和 GROUP BY。
例如:
  1. SQL=u'TBMJ<20000'
  2. with arcpy.da.SearchCursor('DLTB1',[u'DLBM',u'QSDWMC',u'TBMJ'],SQL, '','', sql_clause=(None, u'ORDER by QSDWMC')) as cur:
  3.     for row in cur:
  4.         print row[0],row[1],row[2]
复制代码

结果如下:
0101 菊星村四社 18240.76
0101 菊星村四社 786.04
0101 菊星村四社 3619.86
0101 菊星村四社 1390.43
0101 石簸村二社 2491.59
0101 石簸村二社 10848.03
0101 石簸村二社 2220.65
0101 石簸村二社 17735.11
0101 石簸村二社 2702.95
0101 石簸村二社 14523.47
0101 石簸村二社 9703.18
0101 石簸村二社 4061.0


当然,你也可以把这些要素利用copyfeature方法保存成一个新要素。
回复 支持 反对

使用道具 举报

1

主题

2481

铜板

11

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1515
发表于 2021-9-10 14:07 | 显示全部楼层
66666666666666
回复 支持 反对

使用道具 举报

30

主题

2万

铜板

59

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6290
QQ
发表于 2022-2-10 17:54 | 显示全部楼层
感谢分享:mg
回复 支持 反对

使用道具 举报

37

主题

2万

铜板

111

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
5776
发表于 2022-2-11 15:10 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表