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

本文主要是介绍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,没有问题:

 

这篇关于ArcGIS筛选工具:19段SQL示例代码,所有需求一网打尽的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788260

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

墨刀原型工具-小白入门篇

墨刀原型工具-小白入门篇 简介 随着互联网的发展和用户体验的重要性越来越受到重视,原型设计逐渐成为了产品设计中的重要环节。墨刀作为一款原型设计工具,以其简洁、易用的特点,受到了很多设计师的喜爱。本文将介绍墨刀原型工具的基本使用方法,以帮助小白快速上手。 第一章:认识墨刀原型工具 1.1 什么是墨刀原型工具 墨刀是一款基于Web的原型设计工具,可以帮助设计师快速创建交互原型,并且可以与团队

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

mysql索引四(组合索引)

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。 因为有事,下面内容全部转自:https://www.cnblogs.com/farmer-cabbage/p/5793589.html 为了形象地对比单列索引和组合索引,为表添加多个字段:    CREATE TABLE mytable( ID INT NOT NULL, use

mysql索引三(全文索引)

前面分别介绍了mysql索引一(普通索引)、mysql索引二(唯一索引)。 本文学习mysql全文索引。 全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。 在MySql中,创建全文索引相对比较简单。例如:我们有一个文章表(article),其中有主键ID(

mysql索引二(唯一索引)

前文中介绍了MySQL中普通索引用法,和没有索引的区别。mysql索引一(普通索引) 下面学习一下唯一索引。 创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引。 添加数据库唯一索引的几种

mysql索引一(普通索引)

mysql的索引分为两大类,聚簇索引、非聚簇索引。聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引则不同。聚簇索引能够提高多行检索的速度、非聚簇索引则对单行检索的速度很快。         在这两大类的索引类型下,还可以降索引分为4个小类型:         1,普通索引:最基本的索引,没有任何限制,是我们经常使用到的索引。         2,唯一索引:与普通索引

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

19.手写Spring AOP

1.Spring AOP顶层设计 2.Spring AOP执行流程 下面是代码实现 3.在 application.properties中增加如下自定义配置: #托管的类扫描包路径#scanPackage=com.gupaoedu.vip.demotemplateRoot=layouts#切面表达式expression#pointCut=public .* com.gupaoedu