首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中MonetDBLite中WHERE子句的使用问题

R中MonetDBLite中WHERE子句的使用问题
EN

Stack Overflow用户
提问于 2018-12-04 06:41:18
回答 1查看 87关注 0票数 0

我试图在MonetDBLite 3.5.1中使用R64bit。我的问题是,我无法使用SQL命令过滤数据,如下面的示例:

代码语言:javascript
复制
dbGetQuery(DB,'select * from table1 where "var1" = "1"')

我知道这个错误:

代码语言:javascript
复制
Error in .local(conn, statement, ...) : 
  Unable to execute statement 'select * from table1  where "var1" = "1"'.
Server says 'ParseException:SQLparser:42000!SELECT: identifier '1' unknown'.

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 07:05:54

对于常量值,需要对数值使用单引号(')或无引号。所以在你的例子中,

dbGetQuery(DB,'select * from table1 where "var1" = 1')

dbGetQuery(DB,'select * from table1 where "var1" = \'1\'')

dbGetQuery(DB,"select * from table1 where \"var1\" = '1'")

应该都能用。

一般规则是,标识符(table1var1)通常只需要与"一起引用,如果它们包含空格或大写字符,而常量(1)只有当它们是字符串时才需要与'一起引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53607056

复制
相关文章

相似问题

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