以下代码有效,但速度很慢:
select top 100 FooId
from dbo.Foos
where latitudelongitude.ToString() = 'POINT(0,0)'
order by FooId desc
有没有更好的方法来确定GEOGRAPHY
值是否具有0,0
的纬度/经度?
答案 0 :(得分:3)
您可以使用.Lat
和.Long
来实现这一目标。像这样的东西
SELECT TOP 100 FooId
FROM dbo.Foos
WHERE latitudelongitude.Lat = 0 AND latitudelongitude.Long = 0
ORDER BY FooId desc
答案 1 :(得分:3)
翻转你的测试,哟。 ;)
declare @g geography = geography::STPointFromText('POINT(0 0)', 4326);
select *
from dbo.Foos
where latitudelongitude.STEquals(@g) = 1
换句话说,您最初编写的查询不是SARGable。我写的是。