我試圖得到一個查詢工作,它返回一個從數據庫中的locId的列表餵養長和拉特。周邊地區SQL
這裏的SQL:
例如:LAT = 「-37.8333300」:LON = 「145.000000」:半徑=(5 * 0.621371192)^ 2
SELECT locId,longitude,latitude FROM tbliplocations WHERE (69.1*([longitude]- "&lon&") * cos("&lat&"/57.3))^2 + (69.1*([latitude]- "&lat&"))^2 < "&radius
這裏的誤差我得到:
數據類型float和int在'^'運算符中是不兼容的。
我不確定解決方法,任何人都可以將我指向正確的方向嗎?
答:
使用SQL Server 2008 R2
SELECT city FROM tbliplocationsnew WHERE POWER((69.1*([longitude]- "&lon&") * cos("&lat&"/57.3)),2) + POWER((69.1*([latitude]- "&lat&")),2) < "&radius
^是一個按位XOR http://stackoverflow.com/questions/5411619/t-sql-xor-operator – Jody 2012-02-01 01:24:08
至少有一個例外:PostgreSQL對待^就像它看起來的電源功能(只需安裝一個並檢查,在閱讀網頁上關於PostgreSQL中算術運算符的一些頁面之後:select 10^2 returns 100)。但不是MySQL。必須檢查SQL標準。 – huelbois 2012-02-01 01:42:10
謝謝Huelbois,那就是訣竅!用答案更新了問題 – Ben 2012-02-01 02:24:58