GIS数据属性表的查询在工作中常常用到,本文对常见的基本运算符进行详细介绍,并以实例的形式,针对SQL查询常用的语句进行实例分类解析,大家可以结合项目需求,自行更改对应的语句,提高工作效率。特别注意文末【字段名与值的规范】节所说的字段名和属性值的格式要求,否则容易报错。
一、 常见运算符有哪些?
1、 基础比较运算符
有=(等于)、<>(不等于)、>、<、>=、<=,一般用于对图斑面积、长度、编号的筛选规则设定,从而选择出对应的图斑。如[AREA]>=500 AND [AREA]<800。
2、 模糊匹配(LIKE)
LIKE+通配符(%或_),%指匹配任意长度任意字符,_ 指匹配单个任意字符,均需与LIKE结合使用。如[地类名称] LIKE ‘_业%’,就可以把带第二个字符是“业”的全部地类都筛选出来了,工业用地、商业用地都在选择范围内。注意:对于GIS数据存放在不同的位置,通配符使用的符号均有差异,可参照下图。
3、 逻辑运算符
有AND(与)、OR(或)、NOT(非)三种情况,一般用于和基数运算符或者模糊匹配搭配使用,如[地类名称]=’工业用到’ OR [地类名称]=’水田’ ,取两者的并集图斑,如果换成AND,则取两者的交集图斑。
4、 其他运算符
如()或者(IN / NOT IN),相对用的比较少,()一般在组合查询中使用,如([Year]= 2023 OR [Year] = 2024) AND "地类名称" = '工业用到',括号里面的作为一个整体去筛选。IN / NOT IN一般在集合里面使用,类似OR的使用,相对OR更加简洁一些。如[地类名称] IN (‘水田’,’水浇地’,’旱地’)和[地类名称]=‘水田’ OR [地类名称]=‘水浇地’ OR [地类名称]=‘旱地’意思是一样的。
二、 常用查询示例
0、打开属性选择界面
鼠标点击属性表的左上角,选择【按属性选择】,通过输入SQL数据库语言,可以实现对属性表的各个字段信息进行快速选择,从而提示数据管理效率。
1、 精确匹配
直接用”字段名称” = ‘字段内容’,一般用于单个地类的筛选。如下图,指筛选字段【YDYHFLMC】地类是工业用地的图斑。
2、 数值范围
通过利用逻辑运算符(大于、小于等),结合AND或OR对面积、长度等数值型要素进行筛选,如下图,指筛选FID编号大于等于1小于8对应的图斑。
3、 模糊查询
通配符(%,_)同LIKE结合使用,筛选字段【YDYHFLMC】地类名称以“用地”结尾的所有地类。
筛选字段【YDYHFLMC】地类名称以“公园”开头的所有地类。
筛选字段【YDYHFLMC】地类名称第二个字是“业”的所有地类。
4、 空值查询
筛选字段【YDYHFLMC】是空值的所有地类,注意这个空指的是<null>或<空>。GIS经常遇到字段信息也是空的,但是鼠标实际上点进去,会有””,中间会有一个空格,这种不是真正的空值,是有字符存在的。
同理,非空的使用。
5、 多条件组合查询
一般是基础运算符和逻辑符号结合使用。如下图,指的是选择地类是工业用地且编号大于等于3的图斑。
6、 列表匹配
这里其实就是上文提到的IN / NOT IN,一般在集合里面使用,类似OR的使用。下图中是选择地类是工业用地、公园绿地和农村宅基地。
三、字段名与值的规范
1、字段名引用规则
文件地理数据库:通常无需引号,如AREA,也可用双引号"AREA",英文状态
个人地理数据库:需方括号[AREA],英文状态
基于文件的数据:双引号"AREA",英文状态
2、 字符串值的写法字符串必须用单引号包裹,且是英文状态下的单引号。
3、 NULL赋值
可以通过字段计算器对数据库数据属性表字段属性赋值NULL,但是对shp数据无法赋值NULL。因此,上文空值查询不适用于shp数据。
赠人玫瑰,手有余香,如果觉得对您有帮助,请点个赞吧!