将R数据帧带入带有粘贴功能的sql可用列表

问题描述 投票:0回答:1

我在R(Rdataframe)中有一个数据框/列表,我想直接在RODBC查询中使用

Rdataframe= c('123456','234561','678912')
a= sqlQuery(connection, "Select * from table A where A.Id in Rdataframe")   

并且查询必须是这样的,即我不能先在R中拉表,然后进行查找

所以我认为它只有在它会以如下格式出现时才能运行

a= sqlQuery(connection, "Select * from table A where A.Id in ('123456','234561','678912'))

但是尽管有几次sprintf和paste的尝试,我仍然没有成功。

这是我试图尝试但失败的原因

attempt1= sqlQuery(connection, sprintf("Select * from table A where A.Id in %s", Rdataframe))

attempt2=paste(Rdataframe, sep=",")

然后在查询中使用此尝试2结构。

每一个帮助都很重要

r printf rodbc sqldf
1个回答
1
投票
Rdataframe= c('123456' , '234561' , '678912')
df_str = paste(Rdataframe , collapse = "','" , sep=" ")
queryStr = paste("Select * from table A where A.Id in ('" ,df_str , "')" , sep="")
print(queryStr)

给出输出

[1]“从表A中选择*,其中A.Id in('123456','234561','678912')”

© www.soinside.com 2019 - 2024. All rights reserved.