使用 R 中的 sqlQuery 处理 SQL select 语句中的双引号

Posted

技术标签:

【中文标题】使用 R 中的 sqlQuery 处理 SQL select 语句中的双引号【英文标题】:Dealing with double quotes in SQL select statement with sqlQuery in R 【发布时间】:2018-12-03 17:34:10 【问题描述】:

我正在使用 R 中的 sqlQuery 函数向我的 ODBC 数据库 (Netezza) 发送查询。

在我的 SQL 查询中,我有部分需要为特定数据类型定义子字符串,例如

("NUMERIC"(SERVER.ADMIN.V_D_DATE.CAL_YR_MNTH_ID) <= TO_NUMBER(TO_CHAR("TIMESTAMP"(DATE('now(0)'::"VARCHAR")), 'YYYYMM'::"VARCHAR"), '999999'::"VARCHAR"))

我尝试将双引号更改为单引号并直接在 Netezza 中运行代码,但它不喜欢这样。

在 R 中使用 sqlQuery 函数时,有没有办法在 select 语句中继续使用双引号?

【问题讨论】:

【参考方案1】:

你需要转义引号:

DBI::SQL("\"EXAMPLE\"")
#> <SQL> "EXAMPLE"

【讨论】:

只是为了确保我做对了,上面的代码应该如下所示: ("\"NUMERIC\​​""(SERVER.ADMIN.V_D_DATE.CAL_YR_MNTH_ID) 这看起来不正确,您只需在要转义的每个引号前放一个反斜杠:DBI::SQL("(\"NUMERIC\"(SERVER.ADMIN.V_D_DATE.CAL_YR_MNTH_ID) &lt;= TO_NUMBER(TO_CHAR(\"TIMESTAMP\"(DATE('now(0)'::\"VARCHAR\")), 'YYYYMM'::\"VARCHAR\"), '999999'::\"VARCHAR\"))") 感谢 DiceboyT,我环顾四周寻找更多细节,当我遇到这个例子时,一分钱掉了下来:***.com/questions/14960126/…

以上是关于使用 R 中的 sqlQuery 处理 SQL select 语句中的双引号的主要内容,如果未能解决你的问题,请参考以下文章

r shiny sqlquery - 从 sql 查询结果中填充复选框

使用 rodbc 包从 R 查询 sql server。需要将日期/时间值作为 where 语句的一部分传递到 sqlQuery

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

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

将 R 变量传递给 RODBC sql 查询? [复制]

有没有更好的方法在 R 中编码这个 sqlQuery?