• 背景

由于上周连续被俩朋友问起了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点线面可以并存在一个图层)对象查询点、文本、面对象

  • 高级篇
ObjectInfo(object, attribute) 
Object参数:代表的几何对象
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查询。

      

  • 嵌套查询
所谓嵌套查询也就是子查询,一个Select还可以再包含一个Select,在某些地方用此方法还是非常的方便,但可惜的是MapInfo的SQL查询只能嵌套一次(我试了好像是这样),也就是只能有一个子查询存在。
以下例子说明了:
当道路名称属性表和几何对象属性表分开存放时,那么想要根据道路名查询地图中所在几何对象时就可用此方法。

空间关系嵌套查询
MapInfo SQL查询的强大之处不仅能对属性进行子查询还可以对空间关系进行子查询。
想对数据进行统计时可用此方法。如统计全国数据中浙江省内有多少条高速公路,当然也可以在此基础上进行统计浙江省内高速公路的总公里数。
以上问题覆盖场景有限,日后会陆续补充与修订,如有问题欢迎留言。
都已亲自测试过,可以正常使用。
参考资料:MapBasic二次开发帮助手册 和 SQL语法。

MapInfo SQL查询相关推荐

  1. Mapinfo Sql语句查询方法

    Mapinfo   Sql语句查询方法 ----曹恒 http://wenku.baidu.com/link?url=ZQL-R7MIF6KW2ZnvvREl7ykIhQ_cExSKLz_6S_PJI ...

  2. MyBatis原理分析之四:一次SQL查询的源码分析

    上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码   String res ...

  3. sql查询返回xml数据之应用【转载】

    sql查询返回xml数据之应用[转载] 今天查看邮件,看到一标题Using the FOR XML Clause to Return Query Results as XML,点进去看了看,以前也是知 ...

  4. python查询sqlserver视图_基于odoo11上的SQL查询构建一个新的视图或模型

    我正在研究一个奥多模块.在 我希望我的模块是一个"报告"大多数购买的产品(按客户).在 我已经在Odoo上创建了一个视图,但是现在,我需要按客户"过滤"这些视图 ...

  5. php yii orm,Yii中的sql查询的位置(或任何支持ORM的框架)?

    对于使用MVC体系结构的项目,这是更多的编码风格问题. 我正在使用Yii框架开展一个项目. 每个数据库表都有它自己的模型类,可以让我充分利用Yii的活动记录. 凉. 但是现在我需要用一个复杂的逻辑和大 ...

  6. SQL查询语句 select 详解

    查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...

  7. php 优化sql,php – 优化此SQL查询

    这个SQL查询让我感到厌恶.我没有写它,但它是我们服务器问题的一个重要原因.我愿意将它分成多个查询并通过PHP进行一些处理(比如,RAND()). $sql = "SELECT a.code ...

  8. SQL 查询总是先执行SELECT语句吗?你们都错了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 译者:无明 链接:infoq.cn/article/Oke8hgi ...

  9. MySQL番外篇:一条SQL查询语句是如何执行的?

    在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...

最新文章

  1. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
  2. 如何有效利用项目管理工具提高工作效率?
  3. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具
  4. 两个函数彻底理解Lua中的闭包
  5. 笔记本电脑如何强制关机_长按电源键强制关机会损害笔记本硬件吗?联想:不会但不建议...
  6. 前端:常用的meta标签总结
  7. 微信小程序图片选择,预览和删除
  8. Android 系统(58)---Android 系统 UI - SystemUI之功能介绍和UI布局实现
  9. cdn对动态网站有作用吗_网站选择cdn加速有什么作用?
  10. AngularJS 内置指令
  11. 2014.10.18笔记
  12. python plot linestyle 线型颜色及线条控制(linestyle、marker、color)
  13. 软件加密狗破解思路和方法
  14. SQL查询语句大全(个人总结)
  15. 时间复杂度O(n)的理解
  16. fastai 2019 lesson9 notes 笔记
  17. html通过WebSocket获取虎牙弹幕并展示
  18. 如何避免手机失窃后倾家荡产——手把手教你设置SIM卡密码(也就是PIN密码)
  19. 用xlwings直接调用excel打开xlsx文件
  20. element搜索框实现数据搜索

热门文章

  1. NProgress.js - 前端全站进度条插件 - 给你的网站添加一个加载进度条
  2. Java面试知识点一
  3. 问题求解——网页数据获取
  4. 吾生也有涯,吾知也无涯_乌拉(7)
  5. python 实现钉钉日报自动定时发送
  6. 秋招记录----中信银行总行算法一面
  7. 「洗脑」利用了哪些心理学原理?人脑发生了哪些生理变化?
  8. 风云崛起之一阶电路RC串联解法
  9. Synchro Arts 黑五促销 - 音高时值修复工具
  10. 模块化服务器供电系统,供电系统的模块化设计与模块化UPS详解.PDF