mapinfo通过sql处理2

在再选择中你可以使用在From Table区中未列出的表.但是你必须把这些表列在你的再选择的From子句中(如前面例子所示那样)。

当再选择带有关键字”any”或”all”时,再选择必须并且只能返回一个列。下面的句例是无效的,因为它试图返回两个列(State_name 和Pop_1990):

Any(Select state_name,pop_1990 from state)

 

当再选择不带”any”、“all”或“in”时,再选择必须准确返回一个行的值。下面的例子是无效的,因为再选择返回了一组行:

obj within(Select obj from state where Pop_1990>2000000)

 

当再选择不用”any”、“all”或“in”时,你不能在再选择中使用Group by Columns子句。

你不能有嵌套的再选择,即是说,每个Select语句你只能有一个再选择。

设置过滤标准

 

一个过滤标准是一个逻辑表达式,它通常把一个列值与某个另外的值作比较。例如,以下的过滤标准用大于操作符(>)测试订单金额列是否有大于100的值。

 

Where Condition:Order_Amount>100

 

如果一个查询包含了上面这个Where Condition子句,MapInfo就只选择那些订单金额值大于100的行。

 

Where Condition区可以包含两个或更多的逻辑表达式,但这些表达式必须被词“And”或“Or”隔开。如果表达式是用词And连接,MapInfo仅选择那些两个标准满足的行。如果表达式是用Or连接,MapInfo就选择满足其中任何一个标准的行。

 

过滤标准可用于你的基础表的任何一个列,不管你是否在Select Columns区中包括了这个列。

 

列可以用列名或列号来引用,列号指明是在Select Columns中已有的列的顺序。

 

因此,“Col”和“col6”分别指第一和第六列,号之前必须有字母“Col”。

 

用SQL Select对话框的Where Condition区的基本目的可能是两个:行过滤和关联。Where condition区服务于多个目的。在某些场合下,你可能要用一个Where condition表达式来过滤你的表,以便你只看到满足一定标准的那些列。在一些场合下,你要利用Where condition区来指定一种关联,以便你的查询能够包括来自两个或更多个表中的列。

 

注意:你不可以在Where condition区中使用集合函数(apgregate function)。

 

Order by Columns(按列排序)区

 

选择升序和降序

 

默认,MapInfo是用升序排序一个表。如果你要用一个字符型字段进行排序,升序意味着A出现在B之上,如此类推。如果你对一个数字型字段进行排序,小的数值出现在大的数值之上。

 

为了以降序排序,以便大的数出现在小的数之上,要在Order By Columns区中的列名之后放一个词desc。例如,你查询World表,用如下的方式:

 

Order By Columns:Population desc

 

是用Population对这个表排序,降序。

 

当MapInfo执行多级排序时,各级排序有其自己的升/降序设置。这样,下面的例子按State列执行升序,然后按Population列执行降序:

 

Select Columns: *

 

From Table: City_1K

 

Order By Columns: State,Population desc

 

在Order By Columns区中的列名句法:

 

在这个区,你有两种方法输入一个列名:

 

输入列的名字(例如前例中的列名state)

输入列号,这里的1代表排列在Select Columns区中的第一列,在数字之前不要打入“Col”。

如果你要用一个导出列进行排序并且这个导出列有一个别名的话,你可以在Order By Columns区输入这个别名。如果导出列没有别名,就输入列号(例如1)。

 

用Order By Columns字段对结果表排序

 

在SQL Select对话框中,利用Order By Columns区,允许你对结果表的行进行排序。排序影响到出现在Browser窗口中和各个行从顶到底出现的顺序。如果你打算把Brow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值