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

本文详细解释了如何在ArcGIS中使用标准SQL表达式进行查询,涉及算术、比较、逻辑运算符,以及特殊字符处理和数据类型转换,帮助用户理解如何在不同数据源上执行高效查询操作。
摘要由CSDN通过智能技术生成

        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 - 定义字符串的长度(以字符为单位)
( )—必填参数
[ ]—可选参数

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArcGIS Pro SDK是用于创建ArcGIS Pro加载项的开发工具包。您可以使用ArcGIS Pro SDK来扩展ArcGIS Pro的功能,添加自定义工具、面板、任务和其他功能。\[1\] 要安装ArcGIS Pro SDK 3.0,您需要使用Visual Studio 2022,并从Visual Studio Marketplace搜索并安装以下三个扩展:ArcGIS Pro SDK for .NET,ArcGIS Pro SDK for .NET(Utilities),ArcGIS Pro SDK for .NET(Migration)\[1\]。请注意,ArcGIS Pro SDK for .NET扩展只能集成到Visual Studio 2022,建议使用版本17.2或更高版本\[2\]。 ArcGIS Pro SDK for .NET提供了三个不同的扩展名(.vsix文件):ArcGIS Pro SDK for .NET用于创建ArcGIS Pro加载项的工程和项模板的集合,ArcGIS Pro SDK for .NET(Utilities)用于帮助创建ArcGIS Pro加载项的实用程序的集合,ArcGIS Pro SDK for .NET(Migration)用于将ArcGIS Pro SDK 2.x扩展模块迁移到ArcGIS Pro SDK 3.0 for .NET\[3\]。 总结来说,ArcGIS Pro SDK是用于创建ArcGIS Pro加载项的开发工具包,您可以使用它来扩展ArcGIS Pro的功能。要安装ArcGIS Pro SDK 3.0,您需要使用Visual Studio 2022,并从Visual Studio Marketplace安装相应的扩展。 #### 引用[.reference_title] - *1* *2* *3* [VS2022ArcGIS Pro SDK for .NET安装和卸载指南](https://blog.csdn.net/u012685544/article/details/126317090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值