[英]Inner join with column alias in DB2
我有一個更復雜的查詢與內部聯接拋出錯誤:
[錯誤代碼:-206,SQL狀態:42703] DB2 SQL錯誤:SQLCODE = -206,SQLSTATE = 42703,SQLERRMC = TT.ALIAS,DRIVER = 4.13.127。 2)[錯誤代碼:-727,SQL狀態:56098] DB2 SQL錯誤:SQLCODE = -727,SQLSTATE = 56098,SQLERRMC = 2; -206; 42703; TT.ALIAS,DRIVER = 4.13.127
不起作用的查詢的簡單版本是:
select column1 as alias from table1 tt
inner join table1 ts
on tt.alias = ts.column1
這個簡單的查詢沒有意義,但是我正在嘗試運行的查詢的簡單版本。 這應該沒有錯誤運行嗎? 如果我刪除它運行的別名沒有問題..
提前致謝
您不能在on
或where
子句中使用列別名。 你可以做:
select column1 as alias
from table1 tt inner join
table1 ts
on tt.column1 = ts.column1;
你也可以這樣做:
select alias
from (select column1 as alias
from table1
) tt inner join
table1 ts
on tt.alias = ts.column1;
在編譯階段,查詢由子句計算,首先是from
子句,然后是where
和select
。 換句話說,編譯器在評估from
時不會“知道” select
的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.