SQL: как использовать динамический столбец только для порядка, а не как часть набора результатов - PullRequest
1 голос
/ 06 июля 2011

В настоящее время у меня есть запрос, который возвращает список столбцов, и один из этих столбцов я хочу использовать только внутренне как столбец сортировки, а не как столбец в наборе результатов.

  SELECT Id, Lat, Lng, <haversine calc> as Distance
    FROM Locations
ORDER BY Distance

На основена приведенном выше примере единственная причина, по которой я в настоящее время включаю «Расстояние» в предложение SELECT, заключается в том, что я могу использовать его в предложении ORDER BY.Мой потребительский код вообще не использует Distance.

Как переписать этот запрос, чтобы он возвращал только те столбцы, которые меня интересуют (Id, Lat, Lng), а не те, которые мне не интересны(Расстояние), при этом разрешая сортировку по расстоянию?

Ответы [ 2 ]

4 голосов
/ 06 июля 2011

Все, что вам нужно сделать, это переместить ваши расчеты в предложение ORDER BY следующим образом:

SELECT Id, Lat, Lng
FROM Locations
ORDER BY <haversine calc>
0 голосов
/ 06 июля 2011

Вам не нужно включать столбец в select, потому что вы хотите отсортировать по нему. Вы можете напрямую запросить нужные столбцы

SELECT Id, Lat, Lng FROM Locations ORDER BY <Your Col>
...