指向 SQL 语句
Point in SQL statement
我必须从 Excel sheet 中提取一个数据列表,它在 header 列中有一个点。如果我删除该点,一切正常,但如果我保留该点,则会收到一条错误消息。
工作:SELECT DISTINCT Ty FROM dbStock
不工作:SELECT DISTINCT Ty. FROM dbStock
System.Data.OleDb.OleDbException (0x80040E14): Syntax error (missing
operator) in query expression 'Ty.'.
我在互联网上搜索过,但找不到任何相关信息。
我试图将 Ty.
放在 ''
、""
和 []
之间,但没有成功。
有什么想法吗?
您可以使用
SELECT DISTINCT [Ty.]
或
SELECT DISTINCT "Ty." // In this case, check if QUOTED_IDENTIFIER is set to ON.
EDIT2:只是将其放入答案(来自评论)
解决方案是尝试 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-服务器可以处理这个...
declare @tbl TABLE([Ty.] INT);
INSERT INTO @tbl VALUES(1),(2),(3);
SELECT * FROM @tbl
SELECT [Ty.] FROM @tbl
我必须从 Excel sheet 中提取一个数据列表,它在 header 列中有一个点。如果我删除该点,一切正常,但如果我保留该点,则会收到一条错误消息。
工作:SELECT DISTINCT Ty FROM dbStock
不工作:SELECT DISTINCT Ty. FROM dbStock
System.Data.OleDb.OleDbException (0x80040E14): Syntax error (missing operator) in query expression 'Ty.'.
我在互联网上搜索过,但找不到任何相关信息。
我试图将 Ty.
放在 ''
、""
和 []
之间,但没有成功。
有什么想法吗?
您可以使用
SELECT DISTINCT [Ty.]
或
SELECT DISTINCT "Ty." // In this case, check if QUOTED_IDENTIFIER is set to ON.
EDIT2:只是将其放入答案(来自评论)
解决方案是尝试 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-服务器可以处理这个...
declare @tbl TABLE([Ty.] INT);
INSERT INTO @tbl VALUES(1),(2),(3);
SELECT * FROM @tbl
SELECT [Ty.] FROM @tbl