sql查询在一个case-when列上联接多个表

sql查询在一个case-when列上联接多个表,sql,join,Sql,Join,我的sql是这样的: select case when.....end as colA, table2.col3 from table1 join table2 on table2.colB = colA 在when语句的情况下,还有其他一些表列,这是否可行?我错误地说colA无效。where或on子句中不理解列别名 您可以通过子查询执行此操作,假设案例仅涉及表1中的列: 否则,您可以将case语句放在on子句中: select case when.....end as colA, t2.co

我的sql是这样的:

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

在when语句的情况下,还有其他一些表列,这是否可行?我错误地说colA无效。

where或on子句中不理解列别名

您可以通过子查询执行此操作,假设案例仅涉及表1中的列:

否则,您可以将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 = t1.colA;
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 );