2016-08-05 1 views
-1

У меня есть большая таблица на SQL-сервере и вы хотите импортировать в R с предложением WHERE в дате.Отфильтровать и прочитать набор данных с SQL-сервера в R

library(RODBC) 
dbhandle <- odbcDriverConnect('driver={SQL Server};server=mysqlhost;database=mydbname;trusted_connection=true') 

# Main table query works well 
res <- sqlQuery(dbhandle, 'select * from Main') 

# I would like to filter it by date column 
res <- sqlQuery(dbhandle, 'select * from Main where Date > '2010-01-01'') 
+1

У вас, вероятно, проблемы с одиночными кавычками. Вы должны убежать от них. Нет ничего плохого в вашем запросе @Prasanth – MaxPD

+0

Или используйте двойные кавычки снаружи: '" select * from Main, где Date> '2010-01-01'; "' – SymbolixAU

+0

Вам также может потребоваться использовать '[Date]' , Я считаю, что Date является зарезервированным словом в SQL. – Benjamin

ответ

1

Попробуйте использовать SQLQuery (dbhandle 'выберите * из Main, где дата> " ' "2010-01-01"'"')

1

Один из способов избежать иметь дело с кавычками в используйте параметризованный запрос.

library (RODBCext) 
sqlExecute (
    dbhandle, 
    'select * from Main where [Date] > ?', 
    list (date = '2010-01-01'), 
    fetch = TRUE, 
    stringsAsFactors = FALSE 
) 
Смежные вопросы