Ошибка в rsqlite_send_query (conn @ ptr, statement): near (: синтаксическая ошибка

Следующая строка кода:

sqldf("UPDATE q1_sql_1 SET MONTH_YEAR = RIGHT(MONTH_YEAR, LEN(MONTH_YEAR) - 4)")

Показывает эту ошибку:

Error in rsqlite_send_query(conn@ptr, statement) : near "(": syntax error

person Aneesh    schedule 12.02.2018    source источник
comment
Используйте RIGHTSTR вместо RIGHT.   -  person Scarabee    schedule 12.02.2018
comment
Однако я не понимаю, почему сообщение об ошибке syntax error, оно должно быть no such function: RIGHT. Это странно.   -  person Scarabee    schedule 12.02.2018
comment
Только половина его - дубликат. На самом деле в инструкции sql есть две ошибки. Смотрите мой ответ.   -  person G. Grothendieck    schedule 12.02.2018
comment
@ G.Grothendieck Я согласен. Вы хоть представляете, почему select right('abc', 2) сообщает о синтаксической ошибке вместо неизвестной функции?   -  person Scarabee    schedule 12.02.2018
comment
sqlite выдает синтаксическую ошибку даже без R.   -  person G. Grothendieck    schedule 12.02.2018
comment
да. Я предполагаю, что это из-за двусмысленности с right из right join.   -  person Scarabee    schedule 12.02.2018
comment
Возможно, но sqlite не поддерживает правильное соединение.   -  person G. Grothendieck    schedule 12.02.2018
comment
@ G.Grothendieck: Если вам интересно, я спросил, и оказалось, что это действительно из-за двусмысленности с ключевым словом RIGHT. sqlite.1065341.n5.nabble.com/   -  person Scarabee    schedule 21.02.2018


Ответы (1)


Используйте length и rightstr. О функциях, доступных в SQLite, см .:

https://www.sqlite.org/lang_corefunc.html

а также для дополнительных функций, которые также предоставляет RSQLite:

https://github.com/ggrothendieck/sqldf#example-15-use-of-rsqliteextfuns-library-functions

person G. Grothendieck    schedule 12.02.2018