admin

使用R变量进行SQL查询

sql

很快,我正在使用,JDBC并且尝试编写一个查询,该查询将从SQL开发人员数据库表中返回一些值。

到目前为止,我有这个:

#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中的XlatXlon是变量,它们的值经常更改,因此我无法真正将其传递给查询。显然,Z.LAT与表相Z.LON对应GRID

问题是:是否可以在查询中这样使用R变量?

我还想知道是否=有东西可以匹配最接近或最接近的值。

感谢任何建议。谢谢

编辑: 另一种方法是SELECT *从我的表中取出,然后“玩”fun以获取我的值。有什么想法或做法吗?

注意: jdbcConnection要求远程连接。


阅读 172

收藏
2021-06-07

共1个答案

admin

您在找这个吗?

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但我想您的数据位于远程数据库中,因此在这种情况下它无济于事。

所有SQL风格都具有like,因此只需在查询中使用它即可。如果我误解了您的问题,请告诉我。

sql <- paste0("select * 
           FROM GRID Z
           where Z.LAT like '", Xlat,"' AND Z.LON like '", Xlon,"'")
2021-06-07