我正在尝试通过R OBDC进行查询。但是一个列名称上有空格。例如,[Account No]
。
我正在使用此代码进行查询:
esiid_ac <- sqlQuery(myconn, paste("
SELECT * FROM CustomerUsage WHERE ((CustomerUsage.Account No ='", 12345, "')) ", sep=""),as.is=TRUE)
我收到以下错误:
[1]“42000 102 [Microsoft] [SQL Server的ODBC驱动程序11] [SQL 服务器]'否'附近的语法不正确。“[2] “[RODBC] ERROR:无法SQLExecDirect'\ n SELECT * FROM CustomerUsage WHERE((CustomerUsage.Account No ='678987'))'
如何解决这个问题?
我可以使用列索引而不是列名读取此表吗?
谢谢。
答案 0 :(得分:4)
稍微修改一下引号后,这对我有用:
df <- sqlQuery(myconn, 'SELECT * FROM mytable WHERE "column name" =123', as.is=TRUE)
答案 1 :(得分:2)
您是否尝试过方括号(当列名中有特殊字符时,它们适合我?)
esiid_ac <- sqlQuery(myconn, paste(" SELECT * FROM CustomerUsage WHERE ((CustomerUsage.[Account No] ='", 12345, "')) ", sep=""),as.is=TRUE)
答案 2 :(得分:2)
您可以使用\"COL_NAME\"
代替COL_NAME
,并像使用它一样使用它。例如:
esiid_ac <- sqlQuery(myconn, "SELECT * FROM CustomerUsage WHERE \"Account No\" = 12345")
答案 3 :(得分:1)
您是否可以尝试将列名称设为[帐户号],然后尝试?
答案 4 :(得分:1)
你可以试试......
df <- sqlQuery(myconn, "SELECT * FROM mytab WHERE `crazy column name` =123", as.is=TRUE)