过滤数据集并将其从 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 &gt; '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的主要内容,如果未能解决你的问题,请参考以下文章

具有自己数据库的微服务的聚集,排序,过滤和分页

如何录制声音并将其从 Web 应用程序发送到服务器?

谷歌云sql数据读取审计日志

如何通过基于R中的条件过滤行来读取文件

使用 ODBC 包将数据从 SQL Server 保存或读取到 R

如何使用Web服务并将其从Java类返回到JSP