【发布时间】:2015-12-11 19:47:13
【问题描述】:
以下三个 Select 查询,无论 Where 子句在表别名和列名之间有一个额外的空格,都会产生相同的结果。它们也都有相同的执行计划。为什么空格的存在不会引发语法错误?
DECLARE @TblX TABLE(
ColX int
,ColY float
)
-----As it normally should be
SELECT *
FROM @TblX X
WHERE X.ColX = 1
----Even this works
SELECT *
FROM @TblX X
WHERE X .ColX = 1
----And this too
SELECT *
FROM @TblX X
WHERE X. ColX = 1
【问题讨论】:
-
我会说,它们是同一个查询,或者你的意思是为什么查询在没有任何元组的情况下被执行?
-
为什么不合法?它也适用于 Python。
标签: sql-server tsql sql-server-2012