R,RPostgreSQL:查询中的向量

R, RPostgreSQL: a vector in a query

使用 RPostgreSQL 包,我必须在 string:

中使用 vector 进行查询
dbGetQuery(con, "select from id_table where id_user in tmp")

其中 tmp 应该是长度为 10k 的列表或向量,我该怎么做?谢谢

你可以使用paste0。这是一个示例,我使用 state.abb 数据集

valid_state_logic=paste0("(",paste0("'",state.abb,"'", collapse=","),")")

print(valid_state_logic)
[1] "('DC','AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY')"

试试这个:

query = sprintf("select * from id_table where id_user in (%s)", paste("'",tmp, "'",collapse=","))

dbGetQuery(con, query)

希望对您有所帮助。