我的应用程序使用的数据库包含包含空格的字段名称。我相信这是我的问题的原因。这是一个典型的查询:
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)创建的数据库。
答案 0 :(得分:13)
我认为你不能在实际的表名周围使用引号;只有你指定给它的名字。我会将表格换成括号:[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';
答案 1 :(得分:9)
将'
替换为
"
`
[
和]
例如:"OV2 BAS"
,bas."Ref ID" = ids."Ref ID"
等
答案 2 :(得分:2)
对于Microsoft Access,请包含带有后退标记的空格的字段名称,例如选择`Eng Units` FROM Table
答案 3 :(得分:1)
这取决于您正在使用的数据库引擎
对于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';
答案 4 :(得分:1)
您没有指定您正在使用哪个DBMS,但我猜测SQL服务器,所以
SELECT *
FROM [OV2 BAS] AS bas
^^^^^^^^^
...将字段名称括在括号中。使用引号,将字段名称转换为纯字符串,SQL服务器不会将其视为字段名称。