[英]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.