允许SQL相同的列名
发布时间:2020-12-12 08:22:47 所属栏目:MsSql教程 来源:网络整理
导读:当我在SQL Server中运行此查询 SELECT custid AAA,companyname AAAFROM Sales.CustomersWHERE country = 'USA' 运行正常但现在结果集具有重复的列名称(AAA).为什么SQL Server允许这种情况发生?如果需要引用列名,应用程序如何工作?我知道如果你把这个查询作
当我在SQL Server中运行此查询
SELECT custid AAA,companyname AAA FROM Sales.Customers WHERE country = 'USA' 运行正常但现在结果集具有重复的列名称(AAA).为什么SQL Server允许这种情况发生?如果需要引用列名,应用程序如何工作?我知道如果你把这个查询作为派生表SQL会阻止你.喜欢 SELECT * FROM (SELECT custid AAA,companyname AAA FROM Sales.Customers WHERE country = 'USA') BBB SQL Server报告错误:
这背后的逻辑是什么? 谢谢 解决方法这个问题的原因是:第一个查询 SELECT custid AAA,companyname AAA FROM Sales.Customers WHERE country = 'USA' 在这里,您在输出时分配列别名,所以AAA作为返回结果时附加的列名称(实际上是别名),但是我猜你会看到只有第一列与其他AAA将被删除,因为可能的冲突在进一步的参考.所以这里你没有得到错误. 第二个查询 SELECT * FROM ( SELECT custid AAA,companyname AAA FROM Sales.Customers WHERE country = 'USA') BBB 在这里你有错误,因为你选择了名称为BBB的Inline View记录,这里内部查询(内联视图)被视为一个表(对于你的SELECT * FROM语句),而且我们知道 – 基本上Table不能有多个相同列名称,因为您收到错误,BBB有多个AAA列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |