很快,我正在使用,JDBC并且尝试编写一个查询,该查询将从SQL开发人员数据库表中返回一些值。
JDBC
到目前为止,我有这个:
#Query for getting data sql <- paste("select * FROM GRID Z where Z.LAT = Xlat AND Z.LON = Xlon") fun <- dbGetQuery(jdbcConnection, sql) attach(fun)
问题在于,R中的Xlat和Xlon是变量,它们的值经常更改,因此我无法真正将其传递给查询。显然,Z.LAT与表相Z.LON对应GRID。
Xlat
Xlon
Z.LAT
Z.LON
GRID
问题是:是否可以在查询中这样使用R变量?
我还想知道是否=有东西可以匹配最接近或最接近的值。
=
感谢任何建议。谢谢
编辑: 另一种方法是SELECT *从我的表中取出,然后“玩”fun以获取我的值。有什么想法或做法吗?
SELECT *
fun
注意: jdbcConnection要求远程连接。
jdbcConnection
您在找这个吗?
sql <- paste0("select * FROM GRID Z where Z.LAT ='", Xlat,"' AND Z.LON = '", Xlon,"'")
我以为您的变量是字符。如果上述代码在网络服务器后面运行,则可以使用URL编码和转义选项来避免代码注入…
编辑 :关于此:
I would also like to know if instead of = is there something to match the closest or nearest values.
由于您是通过SQL引擎执行查询的,因此,与R相比,它更是一个SQL问题。就像@Vivek所说的那样,您可以执行此操作,sqldf但我想您的数据位于远程数据库中,因此在这种情况下它无济于事。
sqldf
所有SQL风格都具有like,因此只需在查询中使用它即可。如果我误解了您的问题,请告诉我。
like
sql <- paste0("select * FROM GRID Z where Z.LAT like '", Xlat,"' AND Z.LON like '", Xlon,"'")