[英]How to write this SQL query to jOOQ?
SELECT
feature_name,
( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
* cos( radians( long ) - radians(-122) ) + sin( radians(37) )
* sin( radians( lat ) ) ) ) AS distance
FROM
geo_features
HAVING
distance < 25
ORDER BY
distance
假設此靜態導入:
import static org.jooq.impl.DSL.*;
這是編寫查詢的方法:
GeoFeatures f = Tables.GEO_FEATURES;
Field<Double> distance =
val(3959.0).mul(acos(cos(rad(37.0)))).mul(cos(rad(f.LAT)))
.mul(rad(f.LONG).sub(rad(-122.0)).add(sin(rad(37.0)))
.mul(sin(rad(f.LAT))).as("distance")
DSL.using(configuration)
.select(
f.FEATURE_NAME,
distance
)
.from(f)
.having(distance.lt(25.0))
.orderBy(distance)
這些是要記住的關鍵事項:
org.jooq.impl.DSL
的函數 * = mul()
, + = add() or plus()
, - = sub() or minus()
val()
(用於綁定變量)或inline()
(用於內聯)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.