Проблема с использованием предложения WHERE в MonetDBLite в R - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь использовать MonetDBLite в R64bit 3.5.1.Моя проблема в том, что я не могу отфильтровать данные с помощью команды 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'.

Есть идеи?

1 Ответ

0 голосов
/ 04 декабря 2018

Для постоянных значений необходимо использовать одинарные кавычки (') или ни одного для числовых значений.Так что в вашем примере

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) нужно заключать в кавычки только с ', если ониявляются символьными строками.

...