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


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

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

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


    LIKE

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

     2、在MDB中,使用通配符* 代表任意数量的字符,使用?代表一个字符。

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

    like在GDB、MDB、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' 吧!

  • 相关阅读:
    2020系统综合实践 第五次实践作业
    2020系统综合实践 第4次实践作业
    2020系统综合实践 第3次实践作业
    2020系统综合实践 第2次实践作业
    2020系统综合实践 第1次实践作业
    wireshark大作业——负载均衡
    第07组 Beta版本演示
    第07组 Beta冲刺(4/4)
    软工实践个人总结
    第03组 Beta冲刺(5/5)
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/12781306.html
Copyright © 2020-2023  润新知