2014-02-21 79 views
1

我做了一個名爲DistanceMeters的UDF,它以兩個整數之間的距離返回兩個座標之間的距離。現在我想用它來過濾結果,例如,按列別名過濾(firebird sql)

SELECT DistanceMeters("Latitude_C_", "Longitude_C_", 44.894115, -123.031717) as dis 
FROM CURR_LOCATION where dis < 5000 ORDER by dis 

的問題是,我不能引用列別名在where條件:

SQL error code = -206 
Column unknown 
DIS 

這將工作:

SELECT * FROM CURR_LOCATION where DistanceMeters("Latitude_C_", "Longitude_C_", 44.894115, -123.031717) < 5000 

但我想要顯示的距離也是如此。

幫助?

回答

2

一種選擇是使用派生表:

SELECT dis FROM 
    (SELECT DistanceMeters("Latitude_C_", "Longitude_C_", 44.894115, -123.031717) as dis 
    FROM CURR_LOCATION) 
WHERE dis < 5000 ORDER BY dis