使用 R 和来自 R 数据帧的条件查询 MS SQL
Posted
技术标签:
【中文标题】使用 R 和来自 R 数据帧的条件查询 MS SQL【英文标题】:Query MS SQL using R with criteria from an R data frame 【发布时间】:2017-07-13 14:47:12 【问题描述】:我在 MS SQL Server 中有一个相当大的表(1.2 亿行),我想查询它。我在 R 中还有一个数据框,它具有唯一的 ID,我想将其用作我的查询条件的一部分。我熟悉 dplyr 包,但不确定是否可以在 MS SQL 服务器上执行 R 查询,而不是将所有数据带到我的笔记本电脑内存中(可能会使我的笔记本电脑崩溃)。
当然,其他选择是将数据帧作为表加载到 sql 上,这是我目前正在做的,但我不想这样做。
【问题讨论】:
请邮政编码 【参考方案1】:根据您想要做什么,您可能会在RODBCext
包中找到价值。
假设您想从 MS SQL 表中提取列,其中 ID 位于 R 中的向量中。您可以尝试如下代码:
library(RODBC)
library(RODBCext)
library(tidyverse)
dbconnect <- odbcDriverConnect('driver=SQL Server;
server=servername;database=dbname;trusted_connection=true')
v1 <- c(34,23,56,87,123,45)
qdf <- data_frame(idlist=v1)
sqlq <- "SELECT * FROM tablename WHERE idcol %in% ( ? )"
qr <- sqlExecute(dbconnect,sqlq,qdf,fetch=TRUE)
基本上,您希望将要传递给查询的所有信息放入数据框中。将其视为查询的变量或参数;对于每个参数,您都需要数据框中的一列。然后将查询编写为字符串并将其存储在变量中。您可以使用 sqlExecute
函数将它们放在一起。
【讨论】:
以上是关于使用 R 和来自 R 数据帧的条件查询 MS SQL的主要内容,如果未能解决你的问题,请参考以下文章