2014-02-16 4 views
0

у меня есть SQL как это:SQL запросов объединения нескольких таблиц на случай, когда столбец

select case when.....end as colA, table2.col3 
from table1 
join table2 on table2.colB = colA 

в том случае, если заявление, есть некоторые другие таблицы столбцы, это выполнимо? У меня есть ошибка, говорящая о том, что КОА недействительна.

ответ

0

Псевдонимы столбцов не определены в статьях where или on.

Вы можете сделать это с помощью подзапроса, предполагая, что 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); 
Смежные вопросы