我有以下ID列表,我试图通过R输入到SQL查询。
ID<-c("‘3CS3PJ478’, ‘N6LQ1CMW1’, ‘4J9GNYHC8’, ‘6H8D3A1P0’")
R
中的SQL查询UKSQL6<-data.frame(sqlQuery(myConn, paste("SELECT TOP 100 [AxiomaDate]
,[RiskModelID] ,[IID],[Factor1],[Factor2],[Factor3],[Factor4]FROM [PortfolioAnalytics].[Data_Axioma].[SecurityExposures]
Where AxiomaDate IN (
SELECT MAX(AxiomaDate)
FROM [PortfolioAnalytics].[Data_Axioma].[FactorReturns]
GROUP BY MONTH(AxiomaDate), YEAR(AxiomaDate)
AND IID IN (", paste(ID, collapse = ", "), ")")))
现在,当我粘贴ID(在查询的最后一行)时,它的格式不正确,因此查询无效。 ID对象中的第一个和最后一个字符是“”,它不适用于SQL查询。有没有一种简单的方法可以删除它,以便它们与我上面的查询兼容?
答案 0 :(得分:2)
不幸的是,您无法将列表作为参数传递给SQL。所以,你必须使用查询字符串。
我认为这可以满足您的需求:
IID IN ('", paste(ID, collapse = "', '"), "')")))
字符串值需要单引号。