如何构建查询

查询构建器在按属性和位置查找按属性筛选工具中用于创建满足指定条件的表达式。

构建查询

要构建查询,请在工具窗格或工具对话框中单击构建新查询

首先,选择要从中查找要素的图层。 对于“按属性和位置查找”,可以在查询构建器中完成。 对于“按属性过滤”,必须先填充输入数据参数,然后才能构建查询。

接下来,选择是从属性表达式空间表达式(仅适用于“按属性和位置查找”)还是从表达式组开始。

如果查询有多个表达式,则必须选择以下匹配选项之一来连接表达式:

  • 以下全部为真(默认)- 仅返回与所有表达式均匹配的要素。 此选项等效于 AND 子句。
  • 以下其中一项为真 - 返回与任意表达式匹配的要素。 此选项等效于 OR 子句。

属性表达式

每个属性查询包含一个字段名称、一个运算符以及一个值。

例如,您可以在一个包含城市犯罪事件数据(盗窃、纵火、袭击等)的图层上创建查询,以仅显示盗窃事件点: 请按照以下步骤创建属性表达式:

  • 对于字段名称,选择犯罪类型
  • 对于运算符,选择等于
  • 对于值,写入或选择 Theft
注:

除非选择为空作为运算符,否则具有空值的字段将从所有查询结果中排除。

在大多数情况下,查询构建器包括可用字段值的列表,以帮助构建准确的表达式。 如果输入数据集是来自其他工具的输出,则该列表不适用于“按属性过滤”。 必须在输入框中输入精确的值,而不是从列表中选择值。

空间表达式

每个空间表达式包含一个运算符和第二个图层。 在第二个图层下,可使用 + 表达式按钮添加表达式,以进一步细化第二个图层中要在原始空间表达式中使用的要素。

例如,利用另一个表示面包店的图层,可以进一步细化属性查询,以寻找在甜甜圈商店周围 100 米范围内发生的盗窃。 如下所示添加空间表达式:

  • 对于运算符,选择在某一距离内,然后输入 100 米。
  • 对于图层,选择面包店图层。
  • 单击 + 表达式按钮,然后选择属性表达式
  • Where 语句组中,选择 Shop Type 作为字段名称,保持运算符等于不变,然后写入或选择 Donut shops 作为值。

表达式组

要创建更加复杂的查询,您可以使用表达式组对多个表达式进行分组。 分组表达式的方式决定了您要查找的内容。 您最多可以创建三层分组。

例如,您可以使用表达式组进一步细化上述犯罪事件过滤器。 要显示在甜甜圈商店周围 100 米范围内报告的纵火和盗窃事件,您可以创建表达式组来查找纵火或盗窃事件。 在该组内,使用以下某一项为真选项。 然后,在组外部,添加一个空间表达式以查找甜甜圈商店 100 米范围内的要素。

查询甜甜圈商店 100 米范围内的纵火和盗窃事件的表达式组

运算符

“按属性和位置查找”对属性和空间查询使用运算符,而“按属性过滤”仅对属性查询使用运算符。

属性运算符

存在多种可用于属性查询的运算符,具体取决于您所查询的字段是分类字段还是数字字段。

如果字段为字符串,则可以使用以下运算符:

  • 等于 - 与指定文本匹配的字符串。
  • 不等于 - 与指定文本不匹配的字符串。
  • 属于 - 与其中一个指定文本值匹配的字符串。
  • 不属于 - 与任何指定文本值均不匹配的字符串。
  • 包含 - 包含提供的文本的字符串。
  • 不包含 - 不包含提供的文本的字符串。
  • 开头是 - 开头为指定文本的字符串。
  • 开头不是 - 开头不是指定文本的字符串。
  • 结尾是 - 末尾为指定文本的字符串。
  • 结尾不是 - 末尾不是指定文本的字符串。
  • 为空 - 不含文本的非 null 字符串。
  • 不为空 - 包含一些文本的非 null 字符串。
  • 是空字符串 - 值为 null 或不含文本的字符串。
  • 不是空字符串 - 包含一些文本或值为 null 的字符串。

如果字段为数字字段,则您可以使用以下运算符:

  • 介于 - 介于两个指定值之间的数字。 边界值包含在结果中。
  • 不介于 - 不在两个指定值之间的数字。 边界值不包含在结果中。
  • 等于 - 与指定值匹配的数字。
  • 不等于 - 与指定值不匹配的数字。
  • 属于 - 与其中一个指定值匹配的字符串。
  • 不属于 - 与任何指定值均不匹配的字符串。
  • 大于 - 大于指定值的数字。
  • 最小为 - 等于或大于指定值的数字。
  • 小于 - 小于指定值的数字。
  • 最大为 - 小于或等于指定值的数字。
  • 为空 - 与指定值匹配的数字。
  • 不为空 - 具有一定值的数字。

如果字段为日期,则可以使用以下运算符:

  • 介于 - 介于两个指定日期之间的日期。 边界值包含在结果中。
  • 不介于 - 不在两个指定日期之间的日期。 边界值不包含在结果中。
  • - 与指定日期相同的日期。
  • 不在 - 与指定日期不同的日期。
  • 早于 - 早于指定日期的日期。
  • 晚于 - 晚于指定日期的日期。
  • 为空 - 为 null 的日期。
  • 不为空 - 不为 null 的日期。

空间运算符

空间表达式通过指定完全位于相交等运算符进行创建。

您可以在空间查询中使用以下空间运算符:

  • 相交 - 如果第一个图层中的要素与第二个图层中的要素相交,则会将第一个图层中的要素包括到输出中。
  • 不相交 - 如果第一个图层中的要素与第二个图层中的要素相交,则不会将第一个图层中的要素包括到输出中。
  • 在某一距离范围内 - 如果第一个图层中的要素的任意部分处在第二个图层中要素的指定距离范围内,则选择第一个图层中的要素(包括到输出中);例如,位于河流 100 米距离范围内的宗地将包括到输出中。
  • 不在某一距离范围内 - 如果第一个图层中的要素在另一要素的某一距离范围内,则将排除第一个图层中的要素(不将其包括到输出中);例如,位于河流 100 米距离范围内的宗地将不会包括到输出中。 您可将此关系视为“该要素比指定距离更远”。
  • 完全包含 - 如果第一个图层中的要素完全包含第二个图层中的要素,则会将第一个图层中的要素包括到输出中。
  • 不完全包含 - 如果第一个图层中的要素完全包含第二个图层中的要素,则不会将第一个图层中的要素包括到输出中。
  • 完全位于 - 如果第一个图层中的要素完全位于第二个图层的要素中,则会将第一个图层中的要素包括在输出中。
  • 不完全位于 - 如果第一个图层中的要素完全位于第二个图层的要素中,则不会将第一个图层中的要素包括在输出中。
  • 最邻近 - 如果第一个图层中的要素最邻近第二个图层的要素,则会将第一个图层中的要素包括在输出中。

疑难解答

对数据集的更改可能会导致以前有效的表达式变为无效。 可能导致表达式无效的更改包括删除或更改表达式中使用的字段的字段类型,或更改空间表达式中使用的数据集的几何。 重新打开查询构建器时,其中不会显示无效的表达式。