2016-08-05 61 views
-1

我在SQL服务器中有一个大表,并希望在日期使用WHERE子句导入到R中。从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 where Date>'2010-01-01';'' – SymbolixAU

+0

您可能还需要使用'[Date]' 。我相信日期是SQL中的保留字。 – Benjamin

回答

1

尝试使用的SQLQuery(数据库句柄, 'SELECT * FROM主那里日期> “ ' ”2010-01-01“'”')就可以避免处理引号

1

一种方法是使用参数化查询。

library (RODBCext) 
sqlExecute (
    dbhandle, 
    'select * from Main where [Date] > ?', 
    list (date = '2010-01-01'), 
    fetch = TRUE, 
    stringsAsFactors = FALSE 
) 
相关问题