带JOIN的SQL查询中使用ORDER BY/GROUP BY时a.NR标识符绑定失败原因咨询
问题原因分析
那个「The multi-part identifier could not be bound」错误其实很好理解——SQL引擎找不到你写的a.NR这个字段,说白了就是你引用的a.NR不存在,具体可能有这几个情况:
- 表
[dbo].[A]里根本没有叫NR的字段。你给表A起了别名a,然后在GROUP BY/ORDER BY里写a.NR,但原表A压根没这个列,数据库自然不知道你要指什么,绑定失败。 - 字段名拼写错误。比如实际字段是
Nr、NR_code或者Number,你写成了NR;如果你的数据库用了区分大小写的排序规则,哪怕是nr和NR的大小写差异也会触发这个错误。 - 你搞混了字段所属的表。如果
NR字段其实在NM或者PRO表里,那你应该用对应的别名引用,比如nm.NR或者pro.NR,而不是错误地挂到a(也就是表A)的头上。
举个例子,如果NR实际是PRO表的字段,那你的ORDER BY应该写成ORDER BY pro.NR,而不是a.NR。另外,虽然你用了SELECT *能返回所有字段,但这并不代表你能随便用别名加字段名——得确保这个字段确实属于你指定的表别名对应的表。
内容的提问来源于stack exchange,提问作者Pascal
相关产品推荐
相关产品推荐

