【问题标题】:Query MS SQL using R with criteria from an R data frame使用 R 和来自 R 数据帧的条件查询 MS SQL
【发布时间】:2017-07-13 14:47:12
【问题描述】:

我在 MS SQL Server 中有一个相当大的表(1.2 亿行),我想查询它。我在 R 中还有一个数据框,它具有唯一的 ID,我想将其用作我的查询条件的一部分。我熟悉 dplyr 包,但不确定是否可以在 MS SQL 服务器上执行 R 查询,而不是将所有数据带到我的笔记本电脑内存中(可能会使我的笔记本电脑崩溃)。

当然,其他选择是将数据帧作为表加载到 sql 上,这是我目前正在做的,但我不想这样做。

【问题讨论】:

  • 请邮政编码

标签: r dplyr


【解决方案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 函数将它们放在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 2017-11-10
    • 2013-02-09
    • 1970-01-01
    • 2013-06-14
    • 2023-01-19
    • 1970-01-01
    相关资源
    最近更新 更多