SQL 服务器 - 按几何数据查询

SQL Server - Query by Geometry Data

假设我在 table addresses 中有以下数据:

physicalState    physicalPostalCode    geometry
------------------------------------------------------------------------------    
     PA               15340            0xE6100000010CAC1C5A643B1354C02D431CEBE2264440
     OK               74576            0xE6100000010C7DD0B359F50158C079E9263108544140
     WV               26033            0xE6100000010CE8D9ACFA5C2554C0273108AC1CEA4340
     WV               26033            0xE6100000010C36AB3E575B2554C0C3D32B6519EA4340

我想

select * 
from addresses 
where geometry = GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326)

发现很难弄清楚...

尝试使用方法 [STContains] 像这样的条件:

geometry.STContains(GEOMETRY::STPointFromText('POINT (40.3038 -80.3005)', 4326))

好的!想通了这一点……值得注意的一件事是,x/y 坐标被翻转了。这有助于挫败事情。愚蠢的我。

无论哪种方式,这都是为了能够通过特定点查询数据库:

select * from addresses
WHERE geometry.ToString() = 'POINT (-80.3005 40.3038)'

此外,感谢@Adam Silenko,他的解决方案也可以这样工作:

select * 
from addresses
where geometry.STContains(GEOMETRY::STPointFromText('POINT (-80.3005 40.3038)', 4326)) = 1

谢谢!