ARCGIS PRO SDK 中使用 SQL查询的表达式中的函数

        ArcGIS 中的查询表达式遵循标准 SQL 表达式。表达式中使用的 SQL 语法因数据源而异。每个数据源都有自己的 SQL 变体,这些变体称为 SQL 方言。
基于文件的数据(包括文件地理数据库、shapefile、内存中表视图、文本文件(如 .dbf)、.csv、.txt、.xlsx表)以及使用标准化查询的要素服务使用支持部分 SQL 功能的 ArcGIS SQL 方言。
常见查询:
搜索字符串:查询中的字符串必须始终用单引号括起,例如:STATE_NAME = 'California'
搜索数值:例如:POPULATION>= 5000
搜索空值:IS NULL  或非空值:IS NOT NULL
计       算:可使用算术运算符 +、-、* 和 / 在查询中加入计算: 可在字段和数字之间、字段之间进行计算,例如:
          字段和数字:AREA >= PERIMETER * 100
          字段之间:POP1990 / AREA <= 25
一、算术运算符

运算符 描述

*

乘法算术运算符

/

除法算术运算符

+

加法算术运算符

-

减法算术运算符

二、比较运算符

运算符 描述

<

小于。 适用于字符串(基于字母顺序进行比较)、数值和日期。

<=

小于或等于。 适用于字符串(基于字母顺序进行比较)、数值和日期。

<>

不等于。 适用于字符串(基于字母顺序进行比较)、数值和日期。

>

大于。 适用于字符串(基于字母顺序进行比较)、数值和日期。

>=

大于或等于。 适用于字符串(基于字母顺序进行比较)、数值和日期。

IS [NOT] NULL

选择指定字段为空值的记录。 如果 NULL 前置 NOT,则将选择指定字段中包含任意值的记录。

三、逻辑运算符

运算符 描述
AND 结合两个条件,如果两个条件都为 true 则选择记录。 例如,以下表达式将选择面积大于 1,500 平方英尺且有一个能容纳 2 台以上汽车的车库的所有房屋:
AREA > 1500 AND GARAGE > 2
[NOT] BETWEEN x AND y 选择值大于等于 x 且小于等于 y 的记录。 如果前置 NOT,则将选择值在指定范围之外的记录。 例如,以下表达式将选择值大于等于 1 且小于等于 10 的所有记录:
OBJECTID BETWEEN 1 AND 10
这与以下表达式等效:
OBJECTID >= 1 AND OBJECTID <= 10
但是,在查询具有索引的字段时使用包含 BETWEEN 的表达式效率会更高。
[NOT] EXISTS 如果子查询返回至少一条记录则返回 TRUE;否则返回 FALSE。 例如,如果 OBJECTID 字段包含一个值 50,则以下查询将返回 TRUE:
EXISTS (SELECT * FROM parcels WHERE OBJECTID = 50)
只有文件地理数据库和企业级地理数据库支持 EXISTS 运算符。
[NOT] IN 如果记录的某个字段包含多个字符串或值的其中一个,那么选择这条记录。 当前置 NOT 时,如果记录的某个字段不包含多个字符串或值的任何一个,那么将选择这条记录。 例如,以下表达式将搜索四个州名称:
STATE_NAME IN ('Alabama', 'Alaska', 'California', 'Florida')
x [NOT] LIKE y [ESCAPE '转义字符'] 将 LIKE 运算符(不是 = 运算符)与通配符结合使用可以构建对部分字符串的搜索。 百分号 (%) 表示这个位置可以是任意字符,即 1 个字符、100 个字符或者无字符均可。 此外,要在查询时通配符仅代表一个字符,可使用下划线 (_)。 如果需要访问非字符数据,请使用 CAST 函数。 例如,以下查询将返回整数字段 SCORE_INT 中以 8 开头的数值:
CAST (SCORE_INT AS VARCHAR(10)) LIKE '8%'
要在搜索字符串中包含百分号或下划线,请使用 ESCAPE 关键字来将另一种字符指定为转义字符,该字符表示紧接其后的是真正的百分号或下划线。 例如,以下表达式将返回任何包含 10% 的任何字符串,例如 10% DISCOUNT 或 A10%:
AMOUNT LIKE '%10$%%' ESCAPE '$'
NOT 选择与表达式不匹配的记录。 例如,以下表达式将选择除 California 之外的所有州:
NOT STATE_NAME = 'California'
OR 结合两个条件,如果两个条件中至少有一个为 true 则选择记录。 例如,以下表达式将选择面积大于 1,500 平方英尺或有一个能容纳 2 台以上汽车的车库的所有房屋:
AREA > 1500 OR GARAGE > 2

四、字符串运算符

运算符 描述

||

返回连接两个或多个字符串表达式后得到的字符串。

FIRST_NAME || MIDDLE_NAME || LAST_NAME

五、常用字符串函数:

功能 描述
CHAR_LENGTH(string_exp) 返回字符串表达式的长度(以字符为单位)。
LOWER(string_exp) 返回一个与 string_exp 中的字符串相等的字符串,所有大写字符都转换为小写字符。
POSITION(character_exp IN character_exp) 返回第一个字符表达式在第二个字符表达式中的位置。结果是一个精确的数字,具有实现定义的精度和零小数位数。
SUBSTRING(string_exp FROM start FOR length) 返回派生自 string_exp 的字符串,从长度字符的 start 指定的字符位置开始。
TRIM(BOTH | LEADING | TRAILING trim_character FROM string_exp) 返回从字符串的前导、尾随或两端删除trim_character string_exp
UPPER(string_exp) 返回一个与 string_exp 中的字符串相等的字符串,所有小写字符都转换为大写。

六、数值函数

功能 描述
ABS(numeric_exp) 返回 numeric_exp 的绝对值。
ACOS(float_exp) 将 float_exp 的反余弦返回为角度,以弧度表示。
ASIN(float_exp) 将 float_exp 的反正弦值返回为角度,以弧度表示。
ATAN(float_exp) float_exp的反正切返回为角度,以弧度表示。
CEILING(numeric_exp) 返回大于或等于 numeric_exp 的最小整数。
COS(float_exp) 返回float_exp的余弦值,其中 float_exp 是以弧度表示的角度。
FLOOR(numeric_exp) 返回小于或等于 numeric_exp 的最大整数。
LOG(float_exp) 返回 float_exp 的自然对数。
LOG10(float_exp) 返回 float_exp 的以 10 为底的对数。
MOD(integer_exp1, integer_exp2) 返回integer_exp1的余数除以integer_exp2
POWER(numeric_exp, integer_exp) 将 numeric_exp 的值返回为 integer_exp 的幂。
ROUND(numeric_exp, integer_exp) 返回四舍五入到小数点右边integer_exp位的numeric_exp。如果integer_exp为负数,则numeric_exp四舍五入为 |integer_exp|位置在小数点的左边。
SIGN(numeric_exp) 返回 numeric_exp 符号的指示器。如果 numeric_exp 小于零,则返回 -1。如果 numeric_exp 等于零,则返回 0。如果 numeric_exp 大于零,则返回 1。
SIN(float_exp) 返回float_exp的正弦,其中 float_exp 是以弧度表示的角度。
TAN(float_exp) 返回float_exp的正切,其中 float_exp 是以弧度表示的角度。
TRUNCATE(numeric_exp, integer_exp) 返回numeric_exp截断到小数点右边的integer_exp位。如果integer_exp为负数,则numeric_exp被截断为 |integer_exp|位置在小数点的左边。

七、数值函数

CAST() 函数将值或表达式从一种数据类型转换为另一种指定的数据类型。语法如下:
CAST (expression AS data_type(length))
其中 expression 是必需参数,可以是文本值或将要转换的任何类型的有效表达式(例如,列名、变量)。
其中 data_type 是必需参数,使用的关键字是表达式将强制转换为的结果数据类型。请参阅下表,了解用于有效数据类型的关键字列表。
其中 length 是一个可选参数,用于指定结果数据类型的长度。

数据类型 关键词
长整型 INTEGER
INT
短整数 SMALLINT
浮点数(单精度浮点数) REAL
浮点默认小数为 7,小数 > 7 相当于双精度
双精度(双精度浮点) DOUBLE PRECISION
NUMERIC (p[,s])
DECIMAL (p[,s])
字符串 CHAR(n)
VARCHAR(n)
CHARACTER(n)
日期时间 DATE
TIME
TIMESTAMP
注意:
p - 精度
s - 刻度
n - 定义字符串的长度(以字符为单位)
( )—必填参数
[ ]—可选参数

你可能感兴趣的:(arcgis,sql,数据库)