簡體   English   中英

連接列別名的SQL語法

[英]SQL syntax to join on a column alias

我有一種情況,我需要在公用列名上連接表。 我有一些示例SQL可以顯示我要執行的操作。

declare @t table (assetid int)
declare @x table (id int)

insert into @t(assetid) values (1)
insert into @t(assetid) values (2)
insert into @t(assetid) values (3)

insert into @x(id) values (1)
insert into @x(id) values (2)
insert into @x(id) values (3)

-- SUCCESS
select assetid as assetid
from @t t 
inner join @x x on x.id = t.assetid

-- FAIL
select assetid as EntityId
from @t t 
inner join @x x on x.id = t.EntityId  <-- syntax error

如何重寫上面的FAIL部分,在其中我不能加入表中的列名,而不能加入該列名的別名?

您將需要使用CTE或內聯視圖(子查詢)。 SELECT子句之前先評估ON (滾動到“ SELECT語句的邏輯處理順序”。)

這是您不能在WHERE子句中或在ORDER BY子句以外的任何地方都不能使用列別名的原因。

這條路:

select EntityId
    from (select assetid as EntityId from @t) t 
    inner join @x x on x.id = t.EntityId  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM