首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R sqldf转义双引号

R sqldf转义双引号
EN

Stack Overflow用户
提问于 2017-08-09 22:14:11
回答 2查看 1.8K关注 0票数 1

我希望在sqldf()中运行以下sql语句:

代码语言:javascript
复制
select columnA, "new_column_value" as columnB, "column.C" from mytable
where columnA in ('123','456')

但是当我在sqldf中运行时:

代码语言:javascript
复制
sqldf('select columnA, "new_column_value" as columnB, "column.C" from mytable
    where columnA in ('123','456')')

我得到了一个明显的错误,即单引号已经转义了in('123','456')处的sql代码,如果我用双引号将sql代码括起来,那么在我创建一个新列"new_column_value"时,或者当我从无用的命名为"column.C""column.C"中选择via字面量字符串时,sql就会转义。

所以我有点进退两难。这就好像我想在sqldf()调用中使用sql代码包装,而不是使用引号。

我可以在我喜欢的地方转义单引号和双引号吗?

EN

回答 2

Stack Overflow用户

发布于 2017-08-09 22:22:26

在R字符串中,双引号由反斜杠转义:

代码语言:javascript
复制
test <- "String escaping is \"easy\"!"

这对你来说也应该是可行的。(整个命令用双引号括起来,内部命令用反斜杠转义)

如果您查看intToUtf8(34),也可以看到这一点,其中34是表示双引号的ASCII码。

票数 1
EN

Stack Overflow用户

发布于 2017-08-09 22:40:44

假设使用默认的sqlite后端,则可以执行以下任一操作:

代码语言:javascript
复制
> sqldf("select \"Time\" from BOD")
  Time
1    1
2    2
3    3
4    4
5    5
6    7

> sqldf("select [Time] from BOD")
  Time
1    1
2    2
3    3
4    4
5    5
6    7

问题中的更新声称这是有效的,但它给出了常量字符串Time,而不是同名的变量。

代码语言:javascript
复制
> sqldf("select 'Time' from BOD")
  'Time'
1   Time
2   Time
3   Time
4   Time
5   Time
6   Time
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45593204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档