WhereClause

AMD: require(["geoscene/core/sql/WhereClause"], (WhereClause) => { /* code goes here */ });
ESM: import WhereClause from "@geoscene/core/core/sql/WhereClause";
类: geoscene/core/sql/WhereClause
起始版本:GeoScene Maps SDK for JavaScript 4.14

WhereClause 用于通过将提供的结果解析为一个值来提取满足指定条件的要素。sql.parseWhereClause() 方法返回一个 Promise,其解析为此模块的实例。

属性概述

名称 类型 描述 对象
String[]

where 子句中使用的字段名称数组。

更多详情
WhereClause
Boolean

如果解析的 where 子句满足标准化 sql 要求,则返回 true

更多详情
WhereClause
SQLNode

解析树是用于表示已解析 sql 语句的数据结构。

更多详情
WhereClause

属性详细信息

fieldNames String[]

where 子句中使用的字段名称数组。它可用于在查询图层时获取相应的字段。

示例
// parse layer's definition expression into where clause object
sql.parseWhereClause(layer.definitionExpression, layer.fieldsIndex)
.then(function(clause){
  layer.queryFeatures({
    where: "1=1",
    // where clause object returns layer fields
    // use these fields to query features from the layer
    outFields: clause.fieldsNames
  }).then(function(results) {
   // process query results
  });
});
isStandardized Booleanreadonly

如果解析的 where 子句满足标准化 sql 要求,则返回 true

parseTree SQLNode
起始版本:GeoScene Maps SDK for JavaScript 4.24

解析树是用于表示已解析 sql 语句的数据结构。解析语句需要使用编写该语句的语言的语法。

方法概述

名称 返回值类值 描述 对象
Object

对要素执行 where 子句以生成值。

更多详情
WhereClause
Boolean

根据 whereClause 测试要素的属性,如果测试通过,则返回 true,否则返回 false

更多详情
WhereClause

方法详细说明

calculateValue(feature){Object}

对要素执行 where 子句以生成值。当 WhereClause 用作简单表达式时,则使用它。例如,您可使用表达式来收集统计值。

参数
feature Object

检查 where 子句的要素。

返回
类型 描述
Object 根据提供的 where 子句,检查要素后返回一个值。如果提供的值未知,则返回 null
示例
// calculate the grand total sales price of all features
featureLayer.queryFeatures().then(function(results){
  let total;
  const expression = "totalSales * totalPrice";
  sql.parseWhereClause(expression, layer.fieldsIndex)
  .then(function(whereClause){
    // check if the where clause meets requirements of standardized sql
    if (whereClause.isStandardized){
      features.forEach(function(feature){
        total += whereClause.calculateValue(feature)
      });
      console.log(total); // prints the total sales price of all features
    }
  });
});
testFeature(feature){Boolean}

根据 whereClause 测试要素的属性,如果测试通过,则返回 true,否则返回 false

参数
feature Object

用于测试 whereClause 的要素。

返回
类型 描述
Boolean 如果测试通过,则返回 true,否则返回 false
示例
sql.parseWhereClause("POPULATION > 100000", layer.fieldsIndex)
.then(function(clause){
  let testResult = clause.testFeature(new Graphic({
    attributes: {
      POPULATION: 300000
   }
 });
 console.log(testResult); // prints true
});

类型定义

BinaryNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

二进制表达式节点。它是一个运算符,定义了将两个表达式组合在一起以产生单个结果的方式。它可以是算术运算符、赋值运算符 (=)、比较运算符 (>=)、逻辑运算符 (AND) 或字符串连接运算符 (+)。

属性
type String

值通常是 "binary-expression"

operator String

定义将两个表达式组合在一起以产生单个结果的方式。

可能值"AND"|"OR"|"IS"|"ISNOT"|"IN"|"NOT IN"|"BETWEEN"|"NOTBETWEEN"|"LIKE"|"NOT LIKE"|"<>"|"<"|">"|">="|"<="|"="|"*"|"-"|"+"|"/"

left SQLNode

二进制节点左侧的 SQL 节点。

right SQLNode

二进制节点右侧的 SQL 节点。

escape String
optional

转义字符串。

BoolNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含布尔表达式的节点。用于表示可以是 true 或 false 的条件或标准。

属性
type String

值通常是 "boolean"

value Boolean

值是 truefalse

ColumnNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含图层或表的列名的节点。

属性
type String

值通常是 "column-reference"

column String

列或字段名称。

值通常是 "string"

CurrentTimeNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含 CURRENT_TIMECURRENT_DATE 函数的节点。

属性
type String

值通常是 "current-time"

mode String

当前时间节点模式。

可能值"timestamp"|"date"

DateNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含日期的节点。

属性
type String

值通常是 "date"

value String

日期值。

FunctionNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含 SQL 函数的节点。

属性
type String

值通常是 "function"

name String

SQL 函数的名称。

函数参数。

IntervalNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

间隔节点表示字符文本是一个间隔。间隔定义为两个日期和时间之间的差异。

属性
type String

值通常是 "interval"

间隔节点值。

间隔节点符号。

可能值"+"|"-"|""

间隔限定符可以是单个日期时间字段,也可由两个日期时间字段组成,格式为:TO

IntervalPeriodNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

间隔周期节点。

属性
type String

值通常是 "interval-period"

period String

间隔节点周期。

可能值"day"|"month"|"hour"|"second"|"year"|"minute"

precision Number
secondary String

值通常是 "number"

IntervalQualifierNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含间隔限定符的节点。间隔限定符可以是单个日期时间字段,也可由两个日期时间字段组成,格式为:<leading field> TO <trailing field>

属性
type String

值通常是 "interval-qualifier"

period String

间隔节点周期。

可能值"day"|"month"|"hour"|"second"|"year"|"minute"

precision Number

间隔数据类型的精度包括间隔前导精度、间隔精度和秒精度。

secondary String

秒精度。

值通常是 "number"

ListNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含列表的节点。

属性
type String

值通常是 "expression-list"

expr SQLNode

列表的 SQL 表达式。

NullNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含 NULL 值的节点。

属性
type String

值通常是 "null"

value null

Null 值。

NumberNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含数字的节点。

属性
type String

值通常是 "number"

value Number

数字值。

SearchedCaseNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含 case 表达式的节点。

属性
type String

值通常是 "case-expression"

format String

Case 表达式格式。此属性的值始终为 searched

值通常是 "searched"

clauses WhenNode[]

When 子句。

else SQLNode

Else SQL 节点。

SimpleCaseNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

简单 Case 表达式节点。Case 表达式可提供解码功能,允许将一个表达式转换为另一个表达式。Case 表达式可以出现在可使用其他表达式形式的任何位置。

属性
type String

值通常是 "case_expression"

format String

值通常是 "simple"

clauses WhenNode[]

When 节点。

operand SQLNode

SQL 节点。

else SQLNode

else sql 节点。

起始版本:GeoScene Maps SDK for JavaScript 4.24

SQL 解析树由 SqlNodes 组成。它可以是运算符、文本、函数、列表等。

StringNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含字符串的节点。

属性
type String

值通常是 "string"

value String

字符串值。

TimeStampNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含日期的节点。

属性
type String

值通常是 "timestamp"

value String

字符串日期值。

UnaryNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含一元运算符的节点。一元运算符仅可应用于对数值数据类型类别的任何一种数据类型求值的表达式。

属性
type String

值通常是 "unary-expression"

expr SQLNode

sql 节点。

WhenNode Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

包含 when 子句的节点。

属性
type String

值通常是 "when-clause"

operand SQLNode

运算对象。

value SQLNode

值。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息