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