【问题标题】:SQL Query Syntax Error - Spaces in Field NamesSQL 查询语法错误 - 字段名称中的空格
【发布时间】:2011-11-02 16:48:05
【问题描述】:

我的应用程序使用的数据库具有包含空格的字段名称。我相信这是我的问题的原因。这是一个典型的查询:

SELECT * FROM 'OV2 BAS' AS bas 
INNER JOIN 'OV2 RefID' AS ids ON 'bas.Ref ID' = 'ids.Ref ID' 
WHERE ids.ENUM_H = 'TDischarge';

如何处理字段名称中的空格?谢谢。

其他信息

这是为了访问使用 MS Access 2007 (Microsoft.ACE.OLEDB.12.0) 创建的数据库。

【问题讨论】:

  • 这是为了访问使用 MS Access 2007 (Microsoft.ACE.OLEDB.12.0) 创建的数据库。

标签: sql ms-access-2007 syntax-error


【解决方案1】:

我认为您不能在实际表名周围使用引号;只有您分配给它的名称。我会将表格放在括号中:[OV2 BAS]

您也不能在连接语法周围加上引号。试试这个:

SELECT * FROM [OV2 BAS] AS bas INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID] WHERE ids.ENUM_H = 'TDischarge';

【讨论】:

    【解决方案2】:

    ' 替换为

    • postgreSQL,甲骨文:"
    • MySQL `
    • SQL 服务器:[]

    例如:"OV2 BAS"bas."Ref ID" = ids."Ref ID"

    【讨论】:

    • +1 作为分隔表名和列名一起肯定看起来是错误的。虽然我根据问题中使用的分隔符猜测反引号而不是引号。
    【解决方案3】:

    对于 Microsoft Access,包含带有反引号的空格的字段名称,例如从表中选择“英制单位”

    【讨论】:

      【解决方案4】:

      这取决于您使用的数据库引擎。
      对于 SQL Server,您必须将字段名称放在括号中:[ ]

      SELECT * FROM [OV2 BAS] AS bas 
      INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID]
      WHERE ids.ENUM_H = 'TDischarge';
      

      【讨论】:

      • 这是为了访问使用 MS Access 2007 (Microsoft.ACE.OLEDB.12.0) 创建的数据库。
      【解决方案5】:

      您没有指定您使用的是哪个 DBMS,但我猜是 SQL 服务器,所以

      SELECT *
      FROM [OV2 BAS] AS bas
           ^^^^^^^^^
      

      ... 将字段名称括在括号中。按原样使用引号,将字段名称转换为纯字符串,SQL Server 不会将其视为字段名称。

      【讨论】:

      • 这是为了访问使用 MS Access 2007 (Microsoft.ACE.OLEDB.12.0) 创建的数据库。
      • 好的。括号也可以在那里工作。考虑重命名您的字段,如果可以的话,其中没有空格 - 带空格的名称会在路上造成痛苦(正如您现在所发现的那样)。
      • 您还必须取消引用 JOIN 子句中的字段名称 - 引用字段名称会将它们转换为字符串,并且它们不会被视为字段名称。 ` ... ON bas.[Ref ID] = ids.[Ref ID]`
      • 你为什么说“带空格的名字会在路上造成痛苦”?只要你引用你的字段名(你应该总是这样做),就可以了。
      • @rjmunro “只要你引用,你应该没问题” 这正是问题所在。不是每个人都这样做。 Marc B 是正确的:在字段名称中放置空格不是最佳做法。
      猜你喜欢
      • 2020-03-21
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多