あなたは
InsertListInQuery <- function(querySentence, InList) {
InValues <- ""
for (i in 1:length(InList)){
if (i < length(InList)) {
InValues <- paste(InValues,InList[[i]],",")}
else {
InValues <- paste(InValues,InList[[i]],sep = "")
}
}
LocOpenParenthesis <- gregexpr('[(]', querySentence)[[1]][[1]]
LocCloseParenthesis <- gregexpr('[)]', querySentence)[[1]][[1]]
if (LocCloseParenthesis-LocOpenParenthesis==1) {
querySentence<- gsub("[(]", paste("(",InValues,sep = ""), querySentence)
}
return (querySentence)
}
機能InsertListInQueryのような機能をしようとすると、WHERE clausuleに()における制約を使用するものにあなたの元のクエリを変更する必要があります。文字列をコンマで区切ってベクトル要素に適合させ、 "("文字列を構成した文字列に置き換えてください)最後に、文字変数を返します したがって、要素のリスト、クエリおよび示すように関数を呼び出す:
x<-c(0123, 234, 2348, 345, 3454)
query <- "SELECT top 10 [AxiomaDate]
,[RiskModelID]
,[AxiomaID]
,[Factor1]
FROM [PortfolioAnalytics].[Data_Axioma].[SecurityExposures]
Where AxiomaID IN()"
finalQuery <- InsertListInQuery(query, x)
finalQueryの値は次のとおりです。特殊な文字\ nの
finalQuery
[1] "SELECT top 10 [AxiomaDate] \n ,[RiskModelID]\n,[AxiomaID]\n,[Factor1]\nFROM [PortfolioAnalytics].[Data_Axioma].[SecurityExposures]\nWhere AxiomaID IN (123 , 234 , 2348 , 345 ,3454)"
注改行
私はそれが役立つことを願ってい
。
何か問題があったのですか?肯定の場合は質問に記入してください。それは本当に役に立つでしょう。 –
RのSQLクエリは、クエリが引用されているためxをxと解釈します。 42S22 207 [Microsoft] [ODBC SQL Server Driver] [SQL Server]無効な列名 'x' – user8491385