【问题标题】:How is sql allowing multiple columns with same names [duplicate]sql如何允许具有相同名称的多个列[重复]
【发布时间】:2014-06-10 11:59:34
【问题描述】:

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

据我所知,它应该显示列不明确。怎么允许这样,有什么用???

【问题讨论】:

  • -1 因为在 SO 上很容易找到重复的问题。
  • 实际上,当在 say where 或 have 或 ON 子句中添加相同的列名时,会出现歧义。
  • @FrankSchmitt 提供的可能重复有一些有意义的原因。

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


【解决方案1】:

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

在第二个查询中,您使用表别名前缀从 E1 中选择 EmpName 两次,从 E2 中选择 EmpName 一次(这是同一个表 - 这也没有错,查询引擎也没有歧义)。

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

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

【讨论】:

  • 如果您尝试使用查询创建视图,输出中的歧义将成为问题。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 2022-12-16
    • 2023-03-06
    • 2017-07-03
    • 2015-01-02
    • 2022-06-14
    • 2017-03-24
    • 2019-09-10
    相关资源
    最近更新 更多