【问题标题】:R ODBC - Querying Column name with spacesR ODBC - 用空格查询列名
【发布时间】: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')) '

如何解决?

我可以用列索引而不是列名来读取这个表吗?

谢谢。

【问题讨论】:

    标签: sql r rodbc


    【解决方案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 处理列中空格的方式。它给出了同样的错误。
            猜你喜欢
            • 1970-01-01
            • 2012-08-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-11-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多