ArcGIS|属性空值
分享
数据中难免会出现空值,空值也分为几种情况,而在不同的数据格式里各种空值又有不同的效果,查询起来情况比较复杂。因此,我力求整理一个大致的思路,涵盖多数问题。我也知道这种基础的横向对比价值不高,空洞乏味,但历史欠账总是要还的,权当练习吧。(本文的测试环境为ArcGIS Desktop 10.3.1)
首先定义一些名称,否则就不能很好的交流了:
希望解决的问题:
经过测试,总结几个基本通用的规律:
各种数据格式的一些特殊情况:
shapefile:
PGDB:
FGDB:
ArcSDE for Oracle(ArcSDE 10.0 + Oracle 11.2.0.3):
~~###ArcSDE for SQL Server(待测试)~~
文章来源:http://www.jianshu.com/p/296f1cd7e55c
首先定义一些名称,否则就不能很好的交流了:
- 默认空值:创建记录时,属性字段带有的默认值,通常在ArcMap中显示为<Null>;
- 空值:为字段赋值后,再删除,得到的值,通常在ArcMap中什么都不显示;
- 空格字符:在字符字段中输入一个空格符,在ArcMap中看上去什么都没有,但编辑时可以选中一个字符单位。
希望解决的问题:
- 不同字段类型默认空值如何显示,如何设置查询条件;
- 空值的情况又如何;
- 填入特殊字符,如‘<Null>’、‘Null’、空格字符等,使用时是否会产生混淆;
- 如何恢复默认空值;
- 大小写是否敏感;
- 其他常见的注意事项。
经过测试,总结几个基本通用的规律:
- is null或 is not null可以查询默认空值,不区分大小写;
- ='' 或 <>''可以查询空值;=' '或 <>' '查询空格字符;
- ='xx'或 <>'xx'查询字符串,例如: ='Null'或 ='<Null>';
- 须注意,用<>时无法返回默认空的记录,需要同时使用 is null条件;
- 数值型字段通常没有空值,用默认空值表示;
- 默认空值在代码中的表示与语言相关,如C#中用DBNull,Python中用None。另外的小Bug:属性值如果为'<Null>',直接删除时ArcMap会以为没有做修改无法保存,先改成其他字符再删除则可。
各种数据格式的一些特殊情况:
shapefile:
- 查询时区分大小写;
- 查询时字段名须带双引号"";
- 不存在默认空值和空值,数值型用0代表,字符型用空格字符代表,因此 is null等方法会报错;
- 空格字符和空值会混淆,= ''和 = ' '的效果一样会把俩都查出来,<>也是一样的。多个空格字符和带空格字符的字符串也有类似情况,看来是自带TrimEnd功能。
PGDB:
- 查询时不区分大小写;
- 查询时字段名须带中括号;
- 和shapefile一样混淆空格字符和空值。
FGDB:
- 查询时区分大小写;
- 和shapefile一样混淆空格字符和空值。
ArcSDE for Oracle(ArcSDE 10.0 + Oracle 11.2.0.3):
- 查询时区分大小写;
- 不会产生空值,删除字符后会变成默认空值,因此 = ''没有意义。
- 默认空值和'<Null>'会混淆,IS NULL会选中两者;='<Null>'没有效果,什么都选不中;
- 在C#中为字段赋值时,用null,DBNull.Value 或 ""是一样的效果。
~~###ArcSDE for SQL Server(待测试)~~
文章来源:http://www.jianshu.com/p/296f1cd7e55c
0 个评论
推荐内容
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- arcgis版本兼容性
- ArcGIS 知乎社区活动 之 字幕组加鸡腿暨KBP字幕组招新【获奖名单公布与优秀作品展示】
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?