我必须从Excel表格中提取数据列表,该表格在列标题中有一个点。如果我删除该点一切都很完美,但如果我保持这一点,那么我会得到一条错误消息。
工作:ClientIDMode = "Static"
不工作:SELECT DISTINCT Ty FROM dbStock
System.Data.OleDb.OleDbException(0x80040E14):语法错误(缺失 运算符)在查询表达式'Ty。'。
中
我在互联网上搜索,但找不到任何相关信息。
我尝试将SELECT DISTINCT Ty. FROM dbStock
放在Ty.
,''
和""
之间,但没有运气。
有什么想法吗?
答案 0 :(得分:1)
解决方案是尝试SELECT * FROM ...
。这样,该列的名称已转换为Ty#
。 OP可以继续这个名字......
从此
Working: SELECT DISTINCT Ty FROM dbStock
Not working: SELECT DISTINCT Ty. FROM dbStock
我认为,该列的名称实际上是Ty
。让引擎思考的一点是,这是一个多部分限定符(如tablename.columnname
)。
您可以使用
SELECT DISTINCT Ty AS [Ty.] FROM dbStock
如果您需要输出列名称中的点...
SQL-Server可以处理这个......
declare @tbl TABLE([Ty.] INT);
INSERT INTO @tbl VALUES(1),(2),(3);
SELECT * FROM @tbl
SELECT [Ty.] FROM @tbl
答案 1 :(得分:0)
您可以使用
SELECT DISTINCT [Ty.]
OR
SELECT DISTINCT "Ty." // In this case, check if QUOTED_IDENTIFIER is set to ON.