RODBC-一个sqlQuery()调用中的多个表[重复]

Posted

技术标签:

【中文标题】RODBC-一个sqlQuery()调用中的多个表[重复]【英文标题】:RODBC - multiple tables in one sqlQuery() call [duplicate] 【发布时间】:2012-04-11 20:09:07 【问题描述】:

我正在使用 RODBC 将数据从现有 SQL 数据库中提取到 R 中。我正在尝试一次调用多个查询/表。

例如:

test2=sqlQuery(channel,'select top 10 * from bug; select top 10 * from site')

这只返回第一个表。我有兴趣这样做,因为我想调用一个更复杂的存储过程,其他协作者正在使用并继续开发......这个过程返回 3 个表(在存储过程 (#) 中设置为临时表以满足我们的其他数据需求/用途)。

所以,当我调用存储过程时,类似于上面的两个查询场景,它只返回第一个表作为结果。

有什么建议的解决方法吗?

【问题讨论】:

【参考方案1】:

我认为你不能让它在 RODBC 中工作;据我所知,它需要来自数据库的单个结果集。

但是,您可以修改 SQL 以在单个查询中获取这两个值:

SELECT  
  (SELECT COUNT(*)
   FROM   bug) AS bugcount,
  (SELECT COUNT(*)
   FROM   site) AS sitecount;

【讨论】:

以上是关于RODBC-一个sqlQuery()调用中的多个表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何让 sum 函数在 RODBC 中的 SQLquery 中工作

RODBC sqlQuery as.is 返回错误结果

RODBC:为啥 sqlQuery() 中的空值和仅空格值的值为“NA”?

带有临时表的 RODBC::sqlQuery 提供空字符向量,尽管查询在 SSMS 中工作,较小的查询在相同的连接下工作

来自 RODBC 的 sqlQuery 上的 parlapply

RODBC 在 sqlQuery() 的连接中使用 Data.Frame