r - 如何在没有“c”的圆括号中将矢量放入胶水中?
问题描述
我写了一个代码:
my_values <- dbGetQuery(con, stri_encode(stores_query, to = "UTF-8")) %>%
as.data.table()
table_query <- glue("
SELECT
*
FROM MY_DB
WHERE
values IN {my_values} AND
LIMIT 100
")
输出是:
SELECT
*
FROM MY_DB
WHERE
values IN c("john", "mike", "alex") AND
LIMIT 100
但是我需要这个:
SELECT
*
FROM MY_DB
WHERE
values IN ('john', 'mike', 'alex') AND
LIMIT
如您所见,我需要没有矢量符号“c”,才能使我的查询工作。我还需要值在“”中,而不是在“”中。怎么做?
解决方案
使用glue_sql()
, 并*
在里面的变量名占位符之后添加{…}
:
table_query <- glue_sql("
SELECT
*
FROM MY_DB
WHERE
values IN ({my_values*}) AND
LIMIT 100
", .con = con)
SELECT
*
FROM MY_DB
WHERE
values IN ('john', 'mike', 'alex') AND
LIMIT 100
推荐阅读
- ajax - 如何测试我的视图文件中定义的 AJAX 函数?
- linux - 创建与父文件夹同名的子文件夹并将文件移动到其中
- oracle - 无法将用户从 SQL Developer 连接到 AWS RDS
- javascript - 在 background.js 中的 Chrome 扩展中的 Google Oauth2
- java - Spring boot:如何参数化@Scheduled
- python - `mouseMoveEvent()` 的鼠标移动太快
- angular - 如何忽略/中断所有以前的异步调用,只接受最后一个?
- python - 如何将 Python 变量转换为等效的 cobol 组变量?
- vue.js - Vue.JS 和 VueX - 在创建函数中提交后绑定 css 类的问题 - 使用 SSR
- r - 在 R Shiny 中使用多个输入进行数据反应式过滤