繁体   English   中英

SQL Server 2005如何使用联合语法?

[英]SQL Server 2005 how to use union syntax?

我有这个查询

select c.RequestedByEmployeeID 
from Company c with (NOLOCK)

哪个有效,但是当我尝试这个时,它会失败

select 
    c.RequestedByEmployeeID as ResponsibleLawyerID

union

select 
    c.RequestedByEmployeeID as ResponsibleLawyerID
from
    Company c with (NOLOCK)
order by
    c.CompanyID

出现此错误:

消息107,第16级,州2,第44行
列前缀“ c”与查询中使用的表名或别名不匹配。

消息107,第16级,州2,第44行
列前缀“ c”与查询中使用的表名或别名不匹配。

我该如何解决?

谢谢

只是不要使用别名并重复FROM子句:

select c.CompanyId, c.RequestedByEmployeeID as ResponsibleLawyerID
from Company c
union
select c.CompanyId, c.RequestedByEmployeeID as ResponsibleLawyerID
from Company c
order by CompanyID;

请注意,您需要选择该列。 如果您不想选择该列,但要对其进行排序,则一个解决方案是子查询。 您的查询基本上是荒谬的(选择同一列),因此添加公司似乎是合理的。

order by是指结果union ,而不是特定的子查询。 因此,别名是不合适的。

使用并union意味着您不希望重复,因此数据库会因删除重复而导致性能下降。 如果您不在乎,请使用union all

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM