在SQL结果周围连接引号,以便在另一个使用R的查询中使用



我有两个查询:第一个查询得到字符类型的ID列表,然后我想在另一个查询中使用这些ID。

library(RODBC)
connection<- odbcConnect(dsn=production; db=production, uid='user1', pwd='p@ssw0rd')
IDs_of_Events<-sqlQuery(connection,
        "SELECT eventid
        FROM   ngh_events
        WHERE  event_period = 2"
        )
Count_Attendes<-sqlQuery(connection,
      paste("SELECT  eventid, COUNT(attendee_ID)
             FROM  paid_events
             WHERE eventid IN (", IDs_of_Events , ")
             GROUP BY eventid", sep="")
           )

问题是我无法将第一个查询结果中的事件ID列表连接为具有"EventID"、"EventID"、"EventID"

您必须使用paste:将IDs_Of_Events折叠为单个字符串

paste0("SELECT  eventid, COUNT(attendee_ID)
         FROM  paid_events
         WHERE eventid IN ('", paste(IDs_of_Events,collapse = "','") , "')
         GROUP BY eventid")

请注意,我在其他部分添加了开头和结尾的单引号。如果你经常这样做,那么为paste编写一个为你做这些事情的包装器是值得的。