R:粘贴双打引号,如何摆脱反弹

时间:2017-10-18 15:29:49

标签: sql r sqlite

这似乎是一个古老的重复问题,但我找到的帖子都没有在我的案例中起作用。我有这个简单的SQL查询:

min.t <- "2017-10-17 00:00:00"
max.t <- "2017-10-17 08:00:00"
query <- paste0('select * from pred where \"current.time\">\"',min.t,'\" and 
\"current.time\"<\"',max.t,'\"')
"select * from pred where \"current.time\">\"2017-10-17 00:00:00\" and 
\"current.time\"<\"2017-10-17 08:00:00\""

因为你可以看到由于简单的引用而留下的反斜杠。我需要保留查询的简单引号,因为列名称包含一个点。如果我从粘贴中移除反射,我得到相同的结果:

paste0('select * from pred where "current.time">"',min.t,'" and 
"current.time"<"',max.t,'"')
[1] "select * from pred where \"current.time\">\"2017-10-17 00:00:00\" and 
\"current.time\"<\"2017-10-17 08:00:00\""

 gsub('\\\\', '', query)

似乎忽略了它们。

1 个答案:

答案 0 :(得分:2)

我会将您的原始SQLite查询说成这样:

select *
from pred
where
    "current.time" > '2017-10-17 00:00:00' and
    "current.time" < '2017-10-17 08:00:00';

在R中,您可以在字符变量中使用上面的确切查询,例如

query <- paste0("select * from pred where \"current.time\" > '2017-10-17 00:00:00' ",
                "and \"current.time\" < '2017-10-17 08:00:00'")

请注意,我们可以对您的WHERE子句进行简化,并使用BETWEEN,这会导致:{/ p>

query <- paste0("select * from pred where \"current.time\" between ",
                "'2017-10-17 00:00:01' and '2017-10-17 07:59:59'")