使用R查询SQL中的大小写混合列

时间:2018-07-23 01:20:33

标签: r postgresql psql sqldf rpostgresql

我在my_table中有一个大小写混合的列,只能在psql中使用双引号来查询。例如:

select "mixedCase" from my_table limit 5;是在psql中编写查询的正确方法,这将成功返回记录

但是,我无法在R中复制此查询:

我尝试了以下方法:

  1. dbGetQuery(con, "SELECT '\"mixedCase\"' from my_table limit 5;")

它抛出:RS-DBI driver warning: (unrecognized PostgreSQL field type unknown (id:705) in column 0)

  1. dbGetQuery(con, "SELECT 'mixedCase' from my_table limit 5;")

它抛出:RS-DBI driver warning: (unrecognized PostgreSQL field type unknown (id:705) in column 0)

  1. dbGetQuery(con, "SELECT "mixedCase" from my_table limit 5;") 会抛出Error: unexpected symbol in "dbGetQuery(con, "SELECT "mixedCase"

使用RPostgreSQL包的混合大小写列的解决方案是什么?

1 个答案:

答案 0 :(得分:2)

您似乎已经了解了问题所在,但您从未真正尝试过仅在R中使用字面正确的查询。只需转义查询字符串中的双引号就可以了:

pilots

您的前两次尝试将失败,因为您将function somethingLaps() { return (dispatch, getState) => { dispatch({type: ADD_LAPS, payload: 1}) let {pilots} = getState() // I'm making up what you might have needed pilots array for // add a new pilot let newPilots = pilots.concat([{ name: 'Chesley Sullenberger', nickname: 'Sully' }]) dispatch({type: UPDATE_PILOTS, payload: newPilots}) } } 作为字符串文字而不是作为列名传递。而且第三次尝试将在R端失败,因为您传递的是损坏的字符串/代码。