당신은
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에()에도 제약 조건을 사용 하나에 원래 쿼리를 변경해야합니다. 어떤 함수가 쉼표로 구분 된 벡터 요소로 문자열을 일치시키고 "("문자열을 구성된 문자열로 대체하십시오.) 마지막으로 문자 변수를 반환하십시오. 따라서 제약 조건 벡터를 정의 할 수 있습니다. 그림과 같이 함수를 호출 : finalQuery의
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
[1] "SELECT top 10 [AxiomaDate] \n ,[RiskModelID]\n,[AxiomaID]\n,[Factor1]\nFROM [PortfolioAnalytics].[Data_Axioma].[SecurityExposures]\nWhere AxiomaID IN (123 , 234 , 2348 , 345 ,3454)"
참고 특수 문자 \ n 인 라인 반환
을 내가 도움이 될 희망
을.
오류가 있습니까? 네 이상이라면 질문에 언급하십시오. 그게 정말 도움이 될거야. –
R의 SQL 쿼리는 쿼리가 인용되므로 x를 x로 읽습니다. 42S22 207 [Microsoft] [ODBC SQL Server 드라이버] [SQL 서버] 잘못된 열 이름 'x' – user8491385