在R中的MonetDBSite中使用WHERE子句时出现问题



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

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

我得到这个错误:

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

有什么想法吗?

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

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(如果是字符串,则只需要用'引用。

相关内容

  • 没有找到相关文章

最新更新