在 R 中的 MonetDBLite 中使用 WHERE 子句的问题
Problem using WHERE clause in MonetDBLite in R
我正在尝试在 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'.
有什么想法吗?
对于常数值,您需要使用单引号 ('
) 或 none 来表示数值。所以在你的例子中,
dbGetQuery(DB,'select * from table1 where "var1" = 1')
或
dbGetQuery(DB,'select * from table1 where "var1" = \'1\'')
或
dbGetQuery(DB,"select * from table1 where \"var1\" = '1'")
应该都可以。
一般规则是标识符(table1
或var1
)一般只需要用"
引用,如果它们包含空格或大写字符和常量(1
) 只需要用 '
引起来,如果它们是字符串。
我正在尝试在 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'.
有什么想法吗?
对于常数值,您需要使用单引号 ('
) 或 none 来表示数值。所以在你的例子中,
dbGetQuery(DB,'select * from table1 where "var1" = 1')
或
dbGetQuery(DB,'select * from table1 where "var1" = \'1\'')
或
dbGetQuery(DB,"select * from table1 where \"var1\" = '1'")
应该都可以。
一般规则是标识符(table1
或var1
)一般只需要用"
引用,如果它们包含空格或大写字符和常量(1
) 只需要用 '
引起来,如果它们是字符串。