2016-10-19 16 views
-1

oracle不斷拒絕任何我在with子句中嘗試調用經度的東西。定義變量,無效標識符。歐幾里得距離

WITH params as (
     SELECT -28 as lat, 151 as lon 
     FROM dual 
    ) 
SELECT sighting_id 
FROM sightings 
ORDER BY sqrt(power(lat - latitude, 2) + power(lon - longitude, 2)); 
+0

向我們展示您的數據庫架構。請閱讀[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/),瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

2

您在WITH中定義參數,但從不在FROM中引用它。

WITH params as (
     SELECT -28 as lat, 151 as lon 
     FROM dual 
    ) 
SELECT sighting_id 
FROM sightings CROSS JOIN params 
ORDER BY sqrt(power(lat - latitude, 2) + power(lon - longitude, 2));