gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:35:24 26 4
gpt4 key购买 nike

我需要在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com