如何构建 INFO 查询
输入中的所有要素分为两个集合:已选定集和未选定集。在操作开始时,所有要素均呈选中状态。您必须使用 INFO 查询来识别要归入最终选定集的要素。
INFO 查询是有一个或多个查询操作的列表,其中的每一个查询操作都必须使用下列格式之一:
- RESELECT <逻辑表达式>
将不符合逻辑表达式的要素或记录从选定集中移除
- ASELECT <逻辑表达式>
将通过选择条件的要素添加到选定集中
- NSELECT
将选定集与未选定集交换
逻辑表达式是由一个或多个简单表达式通过逻辑连接符连接而成的。
支持的逻辑连接符:
连接符 | 描述 |
---|---|
AND 或 & | 只能够在同时符合 AND 两侧的简单表达式的要素或记录上进行操作。 |
OR 或 | | 可以在符合 OR 任意一侧的简单表达式的要素或记录上进行操作。 |
XOR | 只能够在符合 XOR 一侧的简单表达式而不符合另一侧的简单表达式的要素或记录上进行操作。 |
简单表达式采用以下形式:<操作数_1> <逻辑运算符> <操作数_2>
操作数包括以下几项:
- INFO 表中的项目(字段)名称
例如:LENGTH
- 常数值
例如:237.5
- 单引号中的字符串
例如:‘Riparian’
- 值集
值集用 { } 括起来。值集中的每个条目都使用逗号隔开。通过使用 -> 将某一范围内的首尾端值隔开,条目可以表示该范围内的值。条目可以是数值常量,也可以是字符串。定义在两个字符串之间的范围基于 ASCII 数字序号(按字母排序)。在值集中最多可以指定 20 个条目,例如,{1,2,7->9,12}。
逻辑运算符:
运算符 | 描述 |
---|---|
EQ 或 = | 操作数_1 等于操作数_2。 |
NE 或 <> 或 ^= | 操作数_1 不等于操作数_2。 |
GE 或 >= | 操作数_1 大于或等于操作数_2。 |
LE 或 <= | 操作数_1 小于或等于操作数_2。 |
GT 或 > | 操作数_1 大于操作数_2。 |
LT 或 < | 操作数_1 小于操作数_2。 |
CN | 操作数_1 包含操作数_2。这两个操作数都必须为字符操作数。 |
NC | 操作数_1 不包含操作数_2。这两个操作数都必须为字符操作数。 |
LK | 操作数_1 类似操作数_2 中指定的通配符字符串。该通配符为 *。它用来表示任意字符串长度的字符。例如,LK 'M*' 将匹配 MAIN、M1、M.1 或以字母 M 开头的任何其他字符串。若要匹配包含 * 的字符串,则在操作数中使用 '^*'。这样,该操作数 'M*^*' 可以与任何以 M 开头,并以 * 结尾的字符串相匹配。 |
IN | 操作数_2 中指定的数值常量集或字符串集包含操作数_1。对于此运算符,操作数_2 必须是字符串值集或常量值集。 |
操作按从左到右的顺序执行。圆括号用于指定该圆括号中的逻辑操作要先于其他操作执行。如果是嵌套式圆括号,则先执行最里层的操作。
每一个元素(操作数、运算符、连接符和圆括号)必须使用空格隔开。
简单表达式中可以包含算术表达式。
以下是一个可以在 Python 中使用的 INFO 查询的示例:["RESELECT habitat = 'riparian1' AND area >= 100", "ASELECT status cn 'checked' "]。若要在工具对话框中使用此查询,请按以下步骤输入 RESELECT habitat = 'riparian1' AND area >= 100 作为列表中的一个条目,并输入 ASELECT status cn 'checked' 作为另一个条目。
- 将查询操作输入“INFO 表达式”字段。每一个查询操作都以 RESELECT、ASELECT 或 NSELECT 开头。
- 单击添加按钮将相应查询操作添加到列表中。
- 重复步骤 1 和步骤 2,直至将整个 INFO 查询都输入到列表中。
- 根据需要,可使用上箭头和下箭头将列表中的查询操作重新排序。