MapInfo SQL查询
- 背景
由于上周连续被俩朋友问起了MapInfo的SQL查询问题,多年没用一时间对她提出的问题挤破了脑子也没想起来,所以趁着周未的时间查询了MapBasic二次开发的资料和SQL语法,所谓好记性不如烂笔头,就顺便把MapInfo的SQL查询的使用方法做了一个简单的记录。
MapInfo软件不做太多的评价,比起ArcGis轻巧了很多,如果只是纯制图编辑的话,MapInfo软件绝对支持。那么对大数据量的显示、查询、分析等性能都非常的赞,SQL查询的功能也非常的强大及好用。
- 使用对象
有过使用MapInfo SQL查询的人,本文基础的查询知识未写入进来,比如对like, and, or、Within、Contains、分组,统计(sum\Count)等未做详细的介绍,等有时间再做整理。
- 软件版本
MapInfo Professional 8.5
- 基础篇
函数 |
用法 | 备注 |
Mid$(string_expr, position, length) |
String_expr:表示要查询字段; Position:从第几位开始查询; Length:获取长度 函数返回:字符串型 |
Mid$("New York City", 10, 4) 函数返回City |
Instr(position, string, substring) |
Position:从字符串的哪个位置开始搜索; String:查询的字段; Substring:查询哪个字符 函数返回:查询字符所在字符串的位置 |
instr(1, "New York City", "York") 函数返回5 |
Not obj |
查询非对象 |
|
rowid |
记录集所在的ID号,唯一的序号 |
|
CentroidX(obj)\ CentroidY(obj) |
几何对象中心点X\Y坐标 |
|
Str$(obj)="point" Str$(obj)=”text” Str$(obj)=”Region” Str$(obj)=”polyline” |
从复合几何(mapinfo点线面可以并存在一个图层)对象查询点、文本、面对象 |
- 高级篇
Attribute参数:是一个枚举类型,可参考MapBasic的帮助手册。
此函数并没有集成在MapInfo的SQL窗口里,所以一般人并不知道它的存在,但这个函数的实用度还是比较高。它会返回几何对象的属性信息,如对象的画笔、刷子、字体等属性还可以是对象的形状点个数、多对象、坐标等属性,以下我只列出了些常用的,有想了解更多的可参考MapBasic的帮助手册。
函数用途 |
用法 |
备注 |
ObjectInfo(object, 21) |
返回几何对象有多少个分离对象组成即多对象 |
此问题一般存在于对象没有被分解,或者说面中有空洞。 |
ObjectInfo(object, 20) |
返回对象的节点个数 |
查询小于500米的线段并且节点数超过1000个的对象 ObjectLen(obj, "m") <500 and ObjectInfo(object,20) > 1000 |
ObjectInfo(object,1) |
返回对象的几何类型,但返回值是一个短整形值, 所以Polyline值为4, Point值为5,REGION值为7,Text值为10 |
查询所有的点数据可以使用 ObjectInfo(obj,1)=5 |
ObjectInfo(object,2) |
返回对象的 pen属性 |
这个可以用来对地图中某一些样式的对象进行选择,比如同一种线型颜色的线段 |
比如说查询一个对象由多少个分离对象组成,可以使用如下的SQL查询。
- 嵌套查询
以下例子说明了:
当道路名称属性表和几何对象属性表分开存放时,那么想要根据道路名查询地图中所在几何对象时就可用此方法。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
MapInfo SQL查询相关推荐
- Mapinfo Sql语句查询方法
Mapinfo Sql语句查询方法 ----曹恒 http://wenku.baidu.com/link?url=ZQL-R7MIF6KW2ZnvvREl7ykIhQ_cExSKLz_6S_PJI ...
- MyBatis原理分析之四:一次SQL查询的源码分析
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String res ...
- sql查询返回xml数据之应用【转载】
sql查询返回xml数据之应用[转载] 今天查看邮件,看到一标题Using the FOR XML Clause to Return Query Results as XML,点进去看了看,以前也是知 ...
- python查询sqlserver视图_基于odoo11上的SQL查询构建一个新的视图或模型
我正在研究一个奥多模块.在 我希望我的模块是一个"报告"大多数购买的产品(按客户).在 我已经在Odoo上创建了一个视图,但是现在,我需要按客户"过滤"这些视图 ...
- php yii orm,Yii中的sql查询的位置(或任何支持ORM的框架)?
对于使用MVC体系结构的项目,这是更多的编码风格问题. 我正在使用Yii框架开展一个项目. 每个数据库表都有它自己的模型类,可以让我充分利用Yii的活动记录. 凉. 但是现在我需要用一个复杂的逻辑和大 ...
- SQL查询语句 select 详解
查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...
- php 优化sql,php – 优化此SQL查询
这个SQL查询让我感到厌恶.我没有写它,但它是我们服务器问题的一个重要原因.我愿意将它分成多个查询并通过PHP进行一些处理(比如,RAND()). $sql = "SELECT a.code ...
- SQL 查询总是先执行SELECT语句吗?你们都错了!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 译者:无明 链接:infoq.cn/article/Oke8hgi ...
- MySQL番外篇:一条SQL查询语句是如何执行的?
在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...
最新文章
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
- 如何有效利用项目管理工具提高工作效率?
- Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具
- 两个函数彻底理解Lua中的闭包
- 笔记本电脑如何强制关机_长按电源键强制关机会损害笔记本硬件吗?联想:不会但不建议...
- 前端:常用的meta标签总结
- 微信小程序图片选择,预览和删除
- Android 系统(58)---Android 系统 UI - SystemUI之功能介绍和UI布局实现
- cdn对动态网站有作用吗_网站选择cdn加速有什么作用?
- AngularJS 内置指令
- 2014.10.18笔记
- python plot linestyle 线型颜色及线条控制(linestyle、marker、color)
- 软件加密狗破解思路和方法
- SQL查询语句大全(个人总结)
- 时间复杂度O(n)的理解
- fastai 2019 lesson9 notes 笔记
- html通过WebSocket获取虎牙弹幕并展示
- 如何避免手机失窃后倾家荡产——手把手教你设置SIM卡密码(也就是PIN密码)
- 用xlwings直接调用excel打开xlsx文件
- element搜索框实现数据搜索