STDistance - вычисляет расстояние между двумя объектами.

Я пытаюсь рассчитать расстояние между двумя объектами.

declare @p1 geography
declare @p2 geography
SELECT @p1 = WKT from tbl_1 where loc = "school"
SELECT @p2 = WKT from tbl_2 where loc = "school"
select round(@p1.STDistance(@p2)/1000,0) Distance_KM

Но я получаю ошибку для столбца loc

Неверное имя столбца

Этот столбец существует, и тип данных geography,

колонка WKT заполняется с помощью:

UPDATE [dbo].[lbl_1]
SET [WKT] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
GO

В чем дело??

1 ответ

Решение

Ваш строковый литерал неверен.

Для SQL вы хотите одинарные кавычки, ау 'school' и не "school",

SQL обрабатывает его как столбец, а не как строковый литерал.

Другие вопросы по тегам