簡體   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