我在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包的混合情况列,解决方案是什么?

最佳答案

您似乎理解这个问题,但实际上从未尝试过在R中使用正确的文本查询。只要转义查询字符串中的双引号,它就应该可以工作:

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

前两次尝试可能会失败,因为您是以字符串文本而不是列名的形式传入mixedCase。第三次尝试在R端失败,因为您传递的是一个断开的字符串/代码。

10-05 23:07