2014-02-16 57 views

回答

0

列別名在whereon條款中不能理解。

你可以用一個子查詢做到這一點,假設case僅涉及列從table1

select case when.....end as colA, t2.col3 
from (select table1.*, (case when.....end) as colA 
     from table1 
    ) t1 join 
    table2 t2 
    on t2.colB = t1.colA; 

否則,你可以case語句on子句中:

select case when.....end as colA, t2.col3 
from (select table1.*, (case when.....end) as colA 
     from table1 
    ) t1 join 
    table2 t2 
    on t2.colB = (case when.....end);