You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArcGIS REST API查询:筛选字符串字段含数值记录报错排查

问题分析与解决方案

原写法的核心问题

你之前的两种写法都会在actionid包含非数值字符串(比如'abc'、'12a3'这类)时触发转换错误——ArcGIS REST API的CAST函数对类型转换的校验非常严格,只要字符串无法被完整解析为目标数值类型,就会直接抛出查询失败的错误,而非返回NULL或跳过该记录。

另外,虽然COALESCE处理了空值,但没覆盖非数值格式的字符串场景,这才是导致查询报错的根本原因。

正确的WHERE子句写法

ArcGIS REST API支持ISNUMERIC()函数(符合SQL-92扩展规范),专门用来判断字符串是否可转换为数值类型,能完美避开转换失败的问题:

场景1:仅筛选actionid本身为数值格式的记录(空值排除)

WHERE ISNUMERIC(actionid) = 1

场景2:将空值视为'0'(包含空值的情况)

WHERE ISNUMERIC(COALESCE(actionid, '0')) = 1

这个函数会返回1(可转换为数值)或0(不可转换),无需执行实际的类型转换,从根源避免了转换失败的报错。

内容的提问来源于stack exchange,提问作者Robert Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:05:21