sql - Rmarkdown - 使用表名作为动态 sql block 中的变量?

标签 sql r r-markdown

我需要在 Rmarkdown 中执行 SQL 引擎 block ,其中查询的表具有由 R 代码定义的动态名称。 我知道可以使用 ? 将变量链接到当前 R 环境。 ,但这仅适用于字符串和数字,不适用于“对象”。

当然,我可以使用 DBI::dbGetQuery() 运行 SQL 查询。但这意味着将我的所有请求(很长)构建为一个不舒服的字符串(我有很多 block 要运行)。

基本上我需要的是:

`` {r}
mytable <- "name_of_table_on_sql_server"
`` 

然后

`` {sql} 
select * from ?mytable
`` 

此操作失败,因为创建的查询是 select * from "name_of_table_on_sql_server" SQL 需要 select * from name_of_table_on_sql_server 的地方(不带引号)。

使用glue将 mytable 定义为 mytable <- glue("name_of_table_on_sql_server")也不工作。

有什么想法吗?

最佳答案

您发布的内容的一个细微变化对我有用(我没有 SQL Server,所以我使用 sqlite 进行了测试):

`` {r}
library(glue)
mytable <- glue_sql("name_of_table_on_sql_server")
`` 

然后

`` {sql} 
select * from ?mytable;
`` 

我唯一真正的更改是使用函数 glue_sql 并在 SQL block 的末尾添加分号 (;)。

关于sql - Rmarkdown - 使用表名作为动态 sql block 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57188798/

相关文章:

mysql - 获取特定行组中的最大值

r - 在 R 函数中存储数据

r - Dplyr Mutate_each 用于成对的列集

sql - 将可为空的日期时间列添加到主键

sql - 在没有字符串文字的有效 Oracle select 语句中,单词 `AS` 的最大比率是多少?

php - 从一个 MySQL 表中获取条目,可选择计算其他表中的相应 ID

arrays - 如何在多个数组中找到连续的数字?

latex - 将主管和其他信息添加到 bookdown pdf_book

R Markdown,chunk选项结果="asis"时输出测试结果(htest)

r - 如何将电子书函数 epub_book 和 kindlegen() 用于现有的 bookdown 文档?