如您所知,如果我们选择两个表而我们具有相同的列名,则会收到错误:
'不明确的列名'ColumnName''
我已经知道设置别名确实解决了这个问题.
但是,似乎列的名称不在 SELECT语句中,那么它适用于SQL Server 2008 R2(在我的数据库中).兼容级别设置为100.
所以下面的陈述是有效的:
SELECT t1.ID
FROM Table1 t1
JOIN Table2 t2 ON (t2.ID = t1.ID)
ORDER BY ID
Run Code Online (Sandbox Code Playgroud)
但显然在其他情况下,上述声明确实会返回错误(我知道这是因为它发生在客户的网站上).同样在SQL Fiddle上,它在SQL Server 2008和SQL Server 2012上都返回错误.
有人知道为什么或在什么情况下上面的查询仍然返回错误?
我的猜测是SQL Server上的版本或设置问题.
注意:链接的副本确实解决了我的问题.兼容级别设置为80.将其更改为100可解决问题.