ArcGIS筛选工具:19段SQL示例代码,所有需求一网打尽

一、使用方法

筛选工具(Select_analysis)主要用于从输入要素类或输入要素图层中提取要素(通常使用选择或结构化查询语言 (SQL) 表达式),并将其存储于输出要素类中。

以三调图斑为例,图斑中有一个【DLMC】字段,该字段值包括(河流水面、农村道路、公路用地、城镇村道路……),如果我们想提取出农村道路并生成单独的要素类,就可以使用【筛选】工具。

筛选工具的路径:【分析工具】—【提取分析】—【筛选】

以ArcMap为例,打开工具,界面如下:

如果是ArcGIS Pro,工具名称变成了【选择】,界面如下:

Pro里的SQL变成了可操作式的用法,对于新手来说更友好了。当然也可以切换成SQL语句写法:

 

个人觉得,在Pro里,尽可能采用可操作式的用法,方便,容易上手。

但是如果想深入理解SQL筛选的原理,或者你用的是ArcMap,那么SQL语句就必须好好学学。

因为SQL并不只是用在【筛选】工具中,其它的包括图层的定义查询、地图或属性表中的按属性选择、以及一些系统工具的参数设置里,都会用到SQL筛选。

下面就举些SQL筛选语句的具体例子。


二、用法示例

1、等于

例如筛选【DLMC】值为【农村道路】的图斑:

DLMC = '农村道路'

2、不等于

例如筛选【DLMC】值不等于【农村道路】的图斑:

DLMC <> '农村道路'

3、获取开头是特定文字的图斑 LIKE

例如筛选【DLMC】值中开头文字是【其他】的图斑:

DLMC LIKE '其他%'

这里的【%】指代了任意字符或无字符。

语句的意思是前面的字符是【其他】,接下来的可以是任意字符。 

4、获取开头不是特定文字的图斑 LIKE

例如筛选【DLMC】值中开头文字不是【其他】的图斑:

DLMC NOT LIKE '其他%'

这是例3的反义,就是在LIKE前面加个NOT,这种用法很常见,后面很多用法都可以加这个反义用法,可以自已试一试。 

5、获取结尾是特定文字的图斑 LIKE

例如筛选【DLMC】值中结尾文字是【林地】的图斑:

DLMC LIKE '%林地'

这里的【%】同样指代任意字符或无字符。

语句的意思是前面可以是任意字符,但最后两个字符必须是【林地】。 

如果想获取结尾文字不是【林地】的图斑:

DLMC NOT LIKE '%林地'

6、包括多个值 IN

例如筛选【DLMC】值是【沟渠】或【公路用地】的图斑:

DLMC IN ('公路用地', '沟渠')

这里的IN就是集合的意思,后面括号里可以无限添加值 。

它有一个等效的写法,就是【DLMC】等于【公路用地】或【DLMC】等于【沟渠】:

DLMC = '公路用地' Or DLMC = '沟渠'

当然第1种写法更简洁也更优雅,建议都用第1种。 

7、包含文本 LIKE

例如筛选【DLMC】值中包含字符【水】的图斑:

DLMC LIKE '%水%'

这里的【%】同样指代任意字符或无字符。

语句的意思是前面可以是任意字符,中间有一个【%】,后面可以是任意字符。

如果想获取不包含字符【水】的图斑:

DLMC NOT LIKE '%水%'

8、包含文本且格式固定 LIKE

例如筛选【DLMC】值中最后两个字符是【用地】且前面是2个字符的图斑:

DLMC LIKE '__用地'

注意上面那根横线是两个【_】符号。

这个【_】符号指代的是任意一个字符。

如果要筛选前面只有1个字符的图斑:

DLMC LIKE '_用地'

更复杂一点的,如果要筛选中间是【用地】,前面一个字符,后面也是一个字符:

DLMC LIKE '_用地_'

总之,只要明白了【_】符号指代的意思,你也可以根据实际情况随意组合。

9、字符串函数 SUBSTRING等

例如筛选【DLMC】中从第二2位起取2个字符的结果为【村道】的图斑:

SUBSTRING(DLMC FROM 2 FOR 2) = '村道'

这个方法等效于:

DLMC LIKE '_村道%'

字符串函数不止SUBSTRING,其它的以后慢慢再研究。

10、字符串联合 ||

||】符号所达到的目的是将两个字符串字段的值进行联合,比如说在某一行,【DLBM】的值为【0101】,【DLMC】的值为【水田】,则【DLBM || DLMC】的值则为【0101水田】。

例如筛选【DLBM】和【DLMC】组合值中包含【2竹】的图斑:

(DLBM || DLMC) LIKE '%2竹%'

不过要用在什么地方,说实话我也没想到,反正先记着。

11、获取为空的图斑 NULL

例如筛选【DLMC】值为空的图斑:

DLMC IS NULL

不为空的情况:

DLMC IS NOT NULL

12、数字筛选,大于、小于、大等于、小等于、不等于

例如筛选【Shape_Area】值大于1000的图斑:

Shape_Area > 1000

类似的,【Shape_Area】值小于、大等于、小等于、不等1000: 

Shape_Area < 1000
Shape_Area >= 1000
Shape_Area <= 1000
Shape_Area <> 1000

13、数字筛选,区间BETWEEN

例如筛选【Shape_Area】值400至430的图斑:

Shape_Area BETWEEN 400 AND 430

这个方法等效于:

Shape_Area >= 400 AND Shape_Area <= 430

14、AND组合

例如筛选【DLMC】值中包含字符【水】,并且【Shape_Area】值大于1000的图斑:

DLMC LIKE '%水%' And Shape_Area > 1000

针对这种存在多个逻辑语句时,建议把单个逻辑用括号包起来,方便阅读和理解:

(DLMC LIKE '%水%') And (Shape_Area > 1000)

15、OR组合

例如筛选【DLMC】值中包含字符【水】,或者【Shape_Area】值大于1000的图斑:

(DLMC LIKE '%水%') OR (Shape_Area > 1000)

OR的前后两个逻辑语句,只要满足其中一个,就会被筛选出来。

16、更复杂的混合逻辑

例如筛选【DLMC】为【水田】,或【DLMC】为【旱地】且【GDDB】大等于11的图斑:

DLMC = '水田' Or (DLMC = '旱地' And GDDB > 11)

17、多个字段间的比对筛选

例如筛选【JQDLMC】和【GHDLMC】值不同的图斑:

JQDLMC <> GHDLMC

18、多个字段间的数学计算

例如筛选出【建筑面积】除以【用地面积】的值(即容积率)大于2的图斑:

建筑面积 / 用地面积 > 2

19、获取数字大于平均值的图斑

需要注意这种【SELECT * FROM * 】的用法只有gdb数据才有效,shp要素不行。

例如筛选【Shape_Area】大于平均数的图斑:

查询【Shape_Area】的平均数为14317.8

筛选语句如下:

Shape_Area > (SELECT AVG(Shape_Area) FROM 现状用地)

筛选结果,都大于14317.8,没有问题:

 

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.文本文件操作 1.1 excel转点 1.2 表格转点 1.3 点集转面 1.4 线封闭 1.5 征地部标准坐标导出 1.6 征地部标准坐标导入 2.mxd操作 2.1 数据打包 2.1.1 mxd批量打包 2.1.2 mxd文档发邮件 2.1.3 数据发邮件 2.2 mxd检查 2.3 mxd批量裁剪 2.4 mxd文档相对路径和无效数据检查 2.5 mxd查找替换 2.6 PDF合并 2.7 按当前MXD批量符号化 2.8 把多个MXD批量导出一个PDF 2.9 批量mxd导出图片 2.10 批量mxd压缩 2.11 转到XY 3.编号工具 3.1 按图形自动编号 3.2 更新BSM 3.3 整库更新BSM 3.4 字符串前补零 4.剪切和合并 4.1 按属性裁剪 4.2 矢量数据批量裁剪 4.3 矢量数据批量裁剪按别名 4.4 矢量数据批量合库 4.5 影像合并 4.6 影像批量裁剪 5.其他 5.1 度分秒转度 5.2 度转度分秒 5.3 飞行网络路线制作 5.4 获得工具箱的工具数 5.5 移除tbx 6.数据处理 6.1 按长度分割线 6.2 分区域消除 6.3 距离角度生成点 6.4 两个图层按重叠度赋属性 6.5 两个图层按重叠度赋属性old 6.6 批量定义坐标系 6.7 批量修复几何(修复前一定备份数据) 6.8 批量压缩数据库 6.9 融合时字段连接 6.10 线分割面保留属性 6.11 要素旋转 6.12 要素移动 6.13 一次性消除指定面积以下的地块 7.数据检查和信息获得 7.1 属性赋值 7.1.1 比例分析 7.1.2 加权平均 7.1.3 取面积最大的 7.2 四至和范围获得 7.2.1 地块四至点获得 7.2.2 地块四至点坐标获得 7.2.3 获得绝对四至(根据四至点坐标) 7.2.4 获得数据的XY范围 7.2.5 获得数据的经纬度范围 7.2.6 获得相对四至(适合大比例小地块) 7.2.7 四邻信息获得 7.3 道路河流依次经过的地方 7.4 获得内角并判断是否凸多边形 7.5 获得线面两个折点方向 7.6 计算点到线的距离 7.7 锐角检查 7.8 添加经纬度坐标 7.9 椭球面积计算 8.数据转换 8.1 SHP转数据库 8.2 批量数据库转数据库 8.3 栅格彩色转黑白 9.拓扑错误处理 9.1 点不在线面上处理 9.2 检查多部件要素 9.3 面缝隙处理 9.4 面线边界不重合 9.5 面重叠处理 9.6 删除完全重复的点线面 9.7 删除线面上重复点 9.8 删除线面直线上的点 9.9 伪节点处理 9.10 线部分或完全重叠处理 10.业务相关 10.1 查询节点距离小于指定距离的点 10.2 村级行政区生成行政界线 10.3 代码名称互填 10.4 地类符号生成 10.5 上级行政区和下级行政区图形不一致处理 10.6 生成上级行政区 10.7 修改面左上角点为第一个点 10.8 修改面左上角点为第一个点根据点层 10.9 宗地获得界址点顺序号 11.制图 11.1 公里网或方里网制作 11.2 经纬网制作 11.3 矩形接幅表 11.4 梯形接幅表 11.5 制作色带 使用方法: 1.打开ArcMap,找到Catalog的窗口 2.Catalog窗口,找到超级工具的存放文件夹

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

规划GIS会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值