R ODBC - 用空格查询列名
Posted
技术标签:
【中文标题】R ODBC - 用空格查询列名【英文标题】:R ODBC - Querying Column name with spaces 【发布时间】:2017-06-21 17:12:30 【问题描述】:我正在尝试通过 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][ODBC Driver 11 for SQL Server][SQL 服务器]'No' 附近的语法不正确。" [2] "[RODBC] 错误:无法 SQLExecDirect '\n SELECT * FROM CustomerUsage WHERE ((CustomerUsage.Account No ='678987')) '
如何解决?
我可以用列索引而不是列名来读取这个表吗?
谢谢。
【问题讨论】:
【参考方案1】:在稍微修改了引号之后,这对我有用:
df <- sqlQuery(myconn, 'SELECT * FROM mytable WHERE "column name" =123', as.is=TRUE)
【讨论】:
【参考方案2】:您是否尝试过方括号(当列名中有特殊字符时它们对我有用)?
esiid_ac <- sqlQuery(myconn, paste(" SELECT * FROM CustomerUsage WHERE ((CustomerUsage.[Account No] ='", 12345, "')) ", sep=""),as.is=TRUE)
【讨论】:
【参考方案3】:您可以使用\"COL_NAME\"
代替COL_NAME
,并像往常一样使用它。例如:
esiid_ac <- sqlQuery(myconn, "SELECT * FROM CustomerUsage WHERE \"Account No\" = 12345")
【讨论】:
【参考方案4】:你可以试着把列名像[Account No]然后试试吗?
【讨论】:
【参考方案5】:你可以试试……
df <- sqlQuery(myconn, "SELECT * FROM mytab WHERE `crazy column name` =123", as.is=TRUE)
【讨论】:
也试过了。 R 处理列中空格的方式。它给出了同样的错误。以上是关于R ODBC - 用空格查询列名的主要内容,如果未能解决你的问题,请参考以下文章