多部分标识符无法与基本查询绑定



我对以下非常基本的查询(更复杂的查询的一部分(挠头,我只是因为使用我为表定义的别名而收到错误。我在 SQL Server Management Studio v17.5 Microsoft运行查询,我升级到 v17.7,但它没有区别。

为什么这三个版本的查询工作正常

SELECT Top(3) AddressNumber from [char_test1].[dbo].[test1_READY]
SELECT Top(3) AddressNumber from [char_test1].[dbo].[test1_READY] AS Ε
SELECT Top(3) [AddressNumber] from [char_test1].[dbo].[test1_READY] AS Ε

虽然这三个版本

SELECT Top(3) E.[AddressNumber] from [char_test1].[dbo].[test1_READY] AS Ε
SELECT Top(3) [E].[AddressNumber] from [char_test1].[dbo].[test1_READY] AS Ε
SELECT Top(3) [E].[AddressNumber] from [char_test1].[dbo].[test1_READY] AS [Ε]

给出错误

无法绑定多部分标识符"E.AddressNumber"。

(显然我在这里不需要别名,但正如我所说,这是一个包含许多表的较大查询的精简版本,只是为了复制错误(

[ 更新 ]

问题解决了,多亏了@Gordon-Linoff的一句话。 事实证明,我从其他地方复制了第二组查询,"E"字符与"E"相同,但具有不同的 ASCII 代码。 我用python Spyder检查了一下:

ord('Ε')
Out[110]: 917
ord('E')
Out[111]: 69

正如你写的问题一样,所有六个陈述都应该同样有效......假设AddressNumber[char_test1].[dbo].[test1_READY].

我的猜测是,当您实际运行查询时,FROM中还有另一个表。 该表包含AddressNumber

另一种(相当遥远的(可能性是,在别名定义或别名引用中,您有另一个字符在E周围不可见。 如果是这种情况,则重新键入代码将解决问题。

最新更新