You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何生成外层单引号、内层保留双引号的Exasol查询语句

解决方案

  • 首先明确:你在控制台看到的\转义符是R展示字符串的默认行为,并非字符串实际包含的内容,拼接后的字符串可以直接传入dbGetQuery执行,你可以用cat()函数验证字符串的真实内容:
# 拼接得到字符串
sql_str <- paste('SELECT * FROM schema."table" WHERE "id" >= ',5000,' and "id" < ',10000, sep="")
# 打印真实内容,无转义符
cat(sql_str)
# 直接调用即可正常执行
dbGetQuery(con, sql_str)
  • 如果你想简化拼接逻辑,避免手动处理分隔符,可以使用glue包实现更简洁的字符串插值:
library(glue)
min_id <- 5000
max_id <- 10000
sql_str <- glue('SELECT * FROM schema."table" WHERE "id" >= {min_id} and "id" < {max_id}')
dbGetQuery(con, sql_str)
  • 优先推荐使用参数化查询,完全规避引号嵌套、转义问题,同时可以避免SQL注入风险:
library(DBI)
# 用?作为参数占位符
sql_template <- 'SELECT * FROM schema."table" WHERE "id" >= ? and "id" < ?'
# 传入参数列表执行查询
result <- dbGetQuery(con, sql_template, params = list(5000, 10000))

内容的提问来源于stack exchange,提问作者Bert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:57:03