多部分标识符不能与基本查询绑定

时间:2018-05-27 14:55:48

标签: sql sql-server alias

我正在摸着以下非常基本的查询(一个更复杂的查询的一部分),我只是因为使用我为表定义的别名而得到错误。我在Microsoft SQL Server Management Studio v17.5中运行查询,我升级到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

1 个答案:

答案 0 :(得分:1)

正如您所写的那样,所有六个陈述都应该完全相同。 。 。假设AddressNumber位于[char_test1].[dbo].[test1_READY]

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

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

相关问题