Mapinfo SQL查询方法和功能函数的使用

这是一套系统的Mapinfo软件使用教程, 课程发布于“微通信课堂” ,主要讲解Mapinfo在通信网络规划中的应用和综合解决方案。

本节主要讲解SQL查询方法和功能函数的应用。SQL查询工具是一个多用途查询工具,在网络规划使用相当频繁,比如将落在相关图层中的点查询出来、将包含在地图中的栅格图层查询出来等等。

1、操作符Operator的使用

操作符主要实现查询对象及其函数的控制,比如查询满足*.Obj为”XX条件”的数据,即可使用操作符“=”等等。

常用的操作符号包括等于“=”、不等于“<>”、包含“Contains”、包含于“Within”、类似“Like”、与或非“And/Or/Not”等操作符,其他的可在使用时参考下表即可。

操作符Operator功能描述
=等于,赋值
<>不等于
>大于
<小于
>=大于等于
<=小于等于
+
*
/
^
0
And与,并且
Or或,选其一
Not非,取反
Like类似,模糊匹配
Contains包含
Contains Entire完全包含
Within包含于,落入
Entirely Within完全包含于,完全落入
Intersects相交

2、聚合表达式Aggregate的使用

聚合表达式主要表达式和功能描述如下:

聚合表达式Aggregate功能描述
Average计算组中所有记录的平均值。
Count统计组中的记录数。
Minimum查找组中所有记录的最小值。
Maximum查找组中所有记录的最大值。
Sum计算组中所有记录的值之和。
Weighted Average计算组中所有记录的权重平均值。

3、函数Funtions的使用

在通信网络规划中,涉及的函数主要为地理函数,包括查询对象的面积、中心经纬度、对象长度、周长、距离以及设置数据格式等等。

分类函数Funtions功能描述
地理函数*Area返回对象的面积。注意:文字、点、线没有面积。
地理函数*CentroidX1.返回对象质心的X坐标,即地球地图的经度值。
2.质心通常是对象最小边界矩形(MBR)的中心。
地理函数*CentroidY1.返回对象的y质心,这是地球地图的纬度值。
2.如果坐标是纬度和经度,则该值以十进制度数表示。如果表的坐标不是纬度和经度,则该值以指定的任何单位表示。
地理函数*Distance返回两个位置之间的距离。
地理函数*ObjectLen返回对象的长度。
地理函数*Perimeter返回对象的周长。
字符函数*FormatNumber$返回表示格式化数字的字符串。示例:Format$( 12345.678, “$,#.##”) 返回 “$12,345.68”. 
地理函数CartesianArea笛卡尔坐标系统对象的面积。
地理函数CartesianDistance笛卡尔坐标系统两个位置间的距离。
地理函数CartesianObjectLen笛卡尔坐标系统对象的长度。
地理函数CartesianPerimeter笛卡尔坐标系统对象的周长。
地理函数SphericalArea地球表面对象的面积。
地理函数SphericalDistance地球表面两个位置间的距离。
地理函数SphericalObjectLen地球表面对象的长度。
地理函数SphericalPerimeter地球表面对象的周长。
地理函数PointToMGRS$指向军事网格参考系统。
地理函数PointToUSNG$指向美国国家空间寻址网格。
日期函数CurDate返回当前日期。
日期函数Day返回对应月的日期,即1-31编号,为整数。
日期函数Month返回月份,即1-12编号,为整数。
日期函数Weekday返回星期几,即1-7编号,其中1表示星期日。
日期函数Year返回年份,比如2020,格式为整数。
日期函数CurDateTime返回当前日期时间。
日期函数CurTime返回当前时间。
日期函数FormatDate$返回日期格式的数据。
日期函数FormatTime$返回时间格式的数据。
日期函数GetDate返回当前的时间和日期。
日期函数GetTime返回当前的系统时间。
日期函数Hour返回回时间值的小时数,即1-24编号,为整数。
日期函数MakeDateTime返回合并了 date 和 time 的 datetime。
日期函数Minute返回时间值中的分钟, 即0-59编号,为整数。
日期函数Second返回时间值中的秒数, 即0-59编号,为整数。
字符函数Chr$返回与字符代码相对应的字符(例如Chr$(65)返回字符串“a”)。
字符函数DeformatNumber$反转FormatNumber$函数的效果,返回不包含数千个分隔符的字符串。
字符函数Format$返回指定格式的数据。
字符函数InStr( num , str1 , str2 ) 从字符位置num开始搜索字符串str1,并查找字符串str2的匹配项。返回找到str2的位置,如果未找到则返回零。若要在开始时开始搜索,请使用数值1。
字符函数LCase$返回字符串的小写版本。
字符函数Left$返回字符串的第一个字符。
字符函数Len返回字符串中的字符数。
字符函数LTrim$修剪字符串开头的任何空格并返回结果。
字符函数Mid$获取并返回字符串中间的字符。
字符函数Proper$返回大小写正确的字符串(每个单词的首字母大写)。
字符函数Right$返回字符串的最后个字符。
字符函数Rtrim$修剪字符串结尾的任何空格并返回结果。
字符函数Str$返回表达式的字符串近似值。
字符函数UCase$返回字符串的大写(全部大写)版本。
字符函数Val返回字符串的数值;例如,Val(“18”)返回数字18。
数学函数Abs返回数值表达式的绝对值。
数学函数Cos返回数字的余弦值。
数学函数Int返回一个小数的整数。
数学函数Maximum返回两个数字中较大的一个。
数学函数Minimum返回两个数字中较小的一个。
数学函数Round返回一个数字,四舍五入。
数学函数Sin返回数字的正弦值。

4、Mapinfo函数的典型应用

在Mapinfo函数使用中,主要抓住点、线、面对象的选取,对象关系(如包含、包含于、与或非等)查询、对象属性查询(如经纬度、面积、长度、周长等)就可以轻松进行SQL查询操作了。

函数用途 语法 备注
图层中选点Str$(obj)=”point”;Str(String)表示字符串;
point表示点;
图层中选线Str$(obj)=”line”(选直线);
ObjectLen(obj, “m”)>0;
ObjectLen(obj, “m”) = 5
line表示直线;
ObjectLen(Object Length)表示对象长度;
m表示长度单位;
图层中选面Str$(obj)=”Region”;
Area(obj, “sq m”)>0;
Area(obj, “sq m”) = 5
Region表示面(区域);
Area表示面及区域;
图层中选文本Str$(obj)= “text”;Text表示文本;
模糊查询Name like “%输入要查询的关键字%”;
Name like “-输入要查询的关键字%”;
Instr(1,字段名,”输入要查询的关键字”);
Name为名称;
like表示象等;
Instr(Instring)表示在字符串中;
包含A.Obj Contains B.Obj;Contains表示包含;
包含于A.Obj Within B.Obj;Within表示包含于;
非对象Not objNot表示不是,非;
多个条件都符合条件A And 条件B(如Name like “%广场” and class = 2 )And表示与、和;
多个条件符合一个就被选出条件A Or 条件B(如Name like “%广场” Or class = 2 )Or表示或者;
查询某一字段属性长度Len(字段名)>字段属性长度;(如Len(Name) > 7)Len(Length)表示长度;
查询某一字段属性的单个字符Len(字段名)>字段属性长度;(如Len(Name) = 1)Len(Length)表示长度;
求和Sum(Area(Obj, “sq km”))所有面积的和;
Sum(ObjectLen(Obj, “km”))所有长度的和;
Sum表示和;
面中有点、线
(线中有面、点
或点中有线、面)
选择列:Obj,Name,从表:居民地;

5、课程海报

【课程名称】图说:轻量化网络规划工具Mapinfo

【课程简介】重剑无锋,用专业工具做专业的事。这是一套教你高效学习Mapinfo、操作Mapinfo以及实践Mapinfo的视频课程。

【课程特点】课程分为50节,分为学习方法、模块Mapinfo、实践Mapinfo、复盘Mapinfo及通信工具集,你可根据需求挑点学习。

【课程定价】39.99元,优惠期29.99元(12.23-1.22),领券立省5元。

【订阅课程】

1、你可通过使用微信扫码或识别下方二维码,订阅课程。

2、可直接文章底部“阅读原文”,即可打开课程链接直接订阅。