如何在 SQL Server 中创建忽略 NULL 值的计算几何列

Posted

技术标签:

【中文标题】如何在 SQL Server 中创建忽略 NULL 值的计算几何列【英文标题】:How to create calculated Geometry column that ignores NULL values in SQL Server 【发布时间】:2021-05-19 17:44:19 【问题描述】:

我有一个“站点”表,其中包含 SSMS 2017 中的纬度和经度列。我想添加一个基于纬度和经度值的地理数据类型的计算列。我用过这个命令:

ALTER TABLE Sites 
    ADD Geo2 AS (geography::STGeomFromText('POINT(Sites.Latitude Sites.Longitude)', 4326))

此命令成功完成,但是当我尝试从表中选择 * 时,它返回屏幕截图中显示的错误failed select command error message。我怀疑这是因为某些站点没有纬度/经度数据(是 NULL 值)。有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

先尝试过滤值。像这样的:

ALTER TABLE Sites 
 ADD Geo2 AS IIF(Latitude  IS NOT NULL AND Longitude IS NOT NULL, [geography]::Point(Longitude,Latitude,4326), NULL)

【讨论】:

以上是关于如何在 SQL Server 中创建忽略 NULL 值的计算几何列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL Server Management Studio (2008) 在 SQL Server Compact Edition 中创建列

如何在 SQL Server 中创建维护计划?

如何使LAG()在SQL Server中忽略NULL?

如何在 SQL Server 中创建“脚本生成器选项”脚本?

如何在 SQL Server 2008 表中创建计算列

如何在 SQL Server 2008 中创建具有新名称的重复表