ArcMap“定义查询”中关于字符串的奇葩问题

Posted yzhyingcool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcMap“定义查询”中关于字符串的奇葩问题相关的知识,希望对你有一定的参考价值。

俺特地去找了个中文版的去截了帮助的图,太不容易了。

关于字符串的部分匹配查询,可以使用下面的两种基本方式:

技术图片

注:该截图取自ArcMap“定义查询”工具窗口的SQL帮助。


LIKE

1、在GDB中,如下图使用 "test" LIKE ‘D%‘ 匹配字段中的“D”,匹配成功。

技术图片

 

  2、在MDB中,如下图使用 [test] LIKE ‘D%‘ 匹配字段中的“D”,but不能实现。

技术图片

 3、在SHP中,如下图使用 "test" LIKE ‘D%‘ 匹配字段中的“D”,可以成功

技术图片

like在GDB、MDB、Shp中,适用于GDB、SHP。

使用Like匹配,具有不确定性,使用左取、右取或者指定位置、长度的字符串匹配最为妥当


 Left

1、在GDB中使用 left( "code",7)=‘E49G035‘ 匹配字符串的前7位,SQL语句错误。

技术图片

 

2、在MDB中使用 left( [code],7)=‘E49G035‘ 匹配字符串的前7位,成功。

  技术图片

3、在SHP中使用 left( "code",7)=‘E49G035‘ 匹配字符串的前7位,SQL语句错误。

技术图片

 

 right函数的就不赘述了。

left函数在GDB、MDB、Shp中,只能适用于MDB。


SUBSTRING

like与左右取函数都不能普适,那么还有什么可选项?在前面提到的帮助文档里继续,博主找到了substring,顾名思义,这个函数是取子串的。

如下图:

技术图片

但是,仍旧遗憾,substring( "code",1,7)=‘E49G035‘只能在GDB与SHP中适用。

那mdb里咋办呢? 用 mid( [code],1,7)=‘E49G035‘ 吧!

以上是关于ArcMap“定义查询”中关于字符串的奇葩问题的主要内容,如果未能解决你的问题,请参考以下文章

课时14:字符串:各种奇葩的内置方法

第014讲:字符串:各种奇葩的内置方法( 课后测试题及答案 )

关于NC 接口无法接收解析‘发‘字符的奇葩事件

奇葩的FeignClient问题

vs的一个奇葩错误 : 未能找到任何适合于指定的区域性或非特定区域性的资源...

python--7 各种奇葩的内置方法