簡體   English   中英

DB2中的列別名的內部聯接

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

這個簡單的查詢沒有意義,但是我正在嘗試運行的查詢的簡單版本。 這應該沒有錯誤運行嗎? 如果我刪除它運行的別名沒有問題..

提前致謝

您不能在onwhere子句中使用列別名。 你可以做:

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子句,然后是whereselect 換句話說,編譯器在評估from時不會“知道” select的內容。

暫無
暫無

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

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