有没有办法将R中定义的变量传递给RODBC包中的sqlQuery函数?
具体来说,我需要将这样的变量传递给标量/表值函数,存储过程和/或SELECT语句的WHERE子句.
例如,让:
x <- 1 ## user-defined
Run Code Online (Sandbox Code Playgroud)
然后,
example <- sqlQuery(myDB,"SELECT * FROM dbo.my_table_fn (x)")
Run Code Online (Sandbox Code Playgroud)
要么...
example2 <- sqlQuery(myDB,"SELECT * FROM dbo.some_random_table AS foo WHERE foo.ID = x")
Run Code Online (Sandbox Code Playgroud)
要么...
example3 <- sqlQuery(myDB,"EXEC dbo.my_stored_proc (x)")
Run Code Online (Sandbox Code Playgroud)
显然,这些都不起作用,但我认为有一些能够实现这种功能的东西.
是否可以将值dbGetQuery从RMySQL包传递到查询中。
例如,如果我在字符向量中有一组值:
df <- c('a','b','c')
Run Code Online (Sandbox Code Playgroud)
我想遍历这些值以从数据库中为每个值提取特定值。
library(RMySQL)
res <- dbGetQuery(con, "SELECT max(ID) FROM table WHERE columna='df[2]'")
Run Code Online (Sandbox Code Playgroud)
当我尝试将引用添加到值时,出现错误。想知道是否可以从查询中的R对象添加值。
简单的问题,但找不到答案.
代替:
Df <- sqlQuery(ch, "SELECT * FROM tblTest WHERE Id=25")
Run Code Online (Sandbox Code Playgroud)
我想要一个更有活力的代码片段.就像是:
Id <- 25
Df <- sqlQuery(ch, c("SELECT * FROM tblTest WHERE Id=", Id))
Run Code Online (Sandbox Code Playgroud)
但这不正确.