指向 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