过滤数据集并将其从 SQL 服务器读取到 R
Posted
技术标签:
【中文标题】过滤数据集并将其从 SQL 服务器读取到 R【英文标题】:Filter and read dataset from SQL server into R 【发布时间】:2016-08-05 00:46:34 【问题描述】:我在 SQL Server 中有一个大表,并希望在日期上使用 WHERE 子句导入 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'')
【问题讨论】:
您的单引号可能有问题。你必须逃离他们。您的查询没有任何问题@Prasanth 或者在外面使用双引号:"select * from Main where Date > '2010-01-01';"
您可能还需要使用[Date]
。我相信 Date 是 SQL 中的保留字。
【参考方案1】:
尝试使用sqlQuery(dbhandle, 'select * from Main where Date > "'"2010-01-01"'"')
【讨论】:
【参考方案2】:避免处理引号的一种方法是使用参数化查询。
library (RODBCext)
sqlExecute (
dbhandle,
'select * from Main where [Date] > ?',
list (date = '2010-01-01'),
fetch = TRUE,
stringsAsFactors = FALSE
)
【讨论】:
以上是关于过滤数据集并将其从 SQL 服务器读取到 R的主要内容,如果未能解决你的问题,请参考以下文章