列名称类似于:“Ab。(Cd)”
它有,'。'以及列名中的()。
我在列名称周围尝试了方括号[],并且尝试了''和“”但没有取得多大成功。请帮忙。
我使用SQL Server导入和导出向导导入一些数据。查询如下所示:
Select 'Trans. Z4 (St 85)' from `'Monthly Prices$'`
使用的完整SQL语句是:
以下是查询:Select F1, HH, AECO, Sumas, Stanfield, Malin, [PG&E], Opal, SoCal, SJ, wTX, sTX, HSC, FGTZ3, [Trans. Z4 (St 85)], Dom, [Tetco M3], 'Trans. Z6 (NY)', AGT, Dawn, Chi, Midcon from 'Monthly Prices$'
请注意,“每月价格$”表格是我尝试导入的Excel工作簿中的工作表。
答案 0 :(得分:2)
您的查询:
Select 'Trans. Z4 (St 85)' from 'Monthly Prices$'
你不能从字符串中SELECT
。您需要在表名周围使用方括号:
Select 'Trans. Z4 (St 85)' from [Monthly Prices$]
但这只是问题的一半。如果你运行它,你会在每一行得到相同的字符串,“Trans.Z4(St 85)”。您还需要为该列名使用方括号:
Select [Trans. Z4 (St 85)] from [Monthly Prices$]
答案 1 :(得分:1)
我认为这是向导,这是你的问题。通常,向导对SQL的理解不如在SSMS中编写语句那样强大。我能够使用您的列名创建一个电子表格,但如果我不使用sql语句导入整个表,则只能使用向导导入它。这对你有用吗?我可以使用这些名称在SSM中使用括号正确地查询表格。
答案 2 :(得分:0)
接下来是谁来回答这个问题,这里是:
Excel SQL界面的列名很糟糕。您的问题是点.
而不是括号()
。您必须用尖锐的#
替换它才能让Excel解析,但是由于它认为其中带有尖锐的单词是(日期)格式,因此还必须将其与反引号`或方括号[]
绑定。
正确的查询是:
Select 'Trans# Z4 (St 85)' from [Monthly Prices$]