我在my_table
中有一个大小写混合的列,只能在psql中使用双引号来查询。例如:
select "mixedCase" from my_table limit 5;
是在psql
中编写查询的正确方法,这将成功返回记录
但是,我无法在R中复制此查询:
我尝试了以下方法:
dbGetQuery(con, "SELECT '\"mixedCase\"' from my_table limit 5;")
它抛出:RS-DBI driver warning: (unrecognized PostgreSQL field type unknown (id:705) in column 0)
dbGetQuery(con, "SELECT 'mixedCase' from my_table limit 5;")
它抛出:RS-DBI driver warning: (unrecognized PostgreSQL field type unknown (id:705) in column 0)
dbGetQuery(con, "SELECT "mixedCase" from my_table limit 5;")
会抛出Error: unexpected symbol in "dbGetQuery(con, "SELECT "mixedCase"
使用RPostgreSQL
包的混合大小写列的解决方案是什么?
答案 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端失败,因为您传递的是损坏的字符串/代码。