sql如何允许多个具有相同名称的列

时间:2014-06-10 11:59:35

标签: sql sql-server-2008-r2 multiple-columns ambiguous

我很困惑,sql如何允许我选择多个具有相同名称的列。

enter image description here 据我所知,它应该显示列模糊。它是如何允许这样的,它的用途是什么?

2 个答案:

答案 0 :(得分:4)

在您的第一个查询中,您实际上选择了相同的列3次。没有错,查询引擎没有歧义。

在第二个查询中,您使用表别名前缀从E1中选择EmpName两次,从E2中选择EmpName一次(这是相同的表 - 没有任何错误,并且查询引擎没有歧义)。 / p>

如果您想避免输出中的歧义,请确保为您选择的列添加别名:

SELECT E1.EmpName AS [Employee Name], E2.EmpName AS [ManagerName]
FROM tblEmp E1 INNER JOIN tblEmp E2 ON E2.EmpId = E1.MgrId

答案 1 :(得分:0)

这就是它的工作方式。 sql允许您选择同名的列。但是当你将它包含在where条件中时,它会显示出不明确的列。避免使用别名