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' 吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM