获取要在表联接选择中使用的动态临时表的列名

4zcjmb1e  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(353)

有人举过一个例子,将一个临时表中的列可以动态地连接到另一个查询中,该查询正在选择特定的列吗?我理解连接,但问题是select必须对列名执行子查询(我猜是吧?),而且不能硬编码,因为这些列将来可能会更改,其中一些会被删除或添加。
一个基本的例子是:

select table1.Name as Name,
    table1.Truck as Truck,
    table1.Address as Address,
    table1.City as City,
    (select * from #temp)
from table1
    left outer join #temp
        on #temp.asset_no = table1.asset_no

我知道它可以工作,如果它是这样的:

select *
from table1
    left outer join #temp
        on #temp.asset_no = table1.asset_no

或者,如果我对列名有了明确的定义,但我无法确定动态表的列名,那么它也会起作用。
我是否需要以某种方式遍历它们,或者在select语句中执行子查询?
提前谢谢!

vfhzx4xs

vfhzx4xs1#

我终于弄明白了。
以下是简化代码:

select table1.Name as Name,
table1.Truck as Truck,
table1.Address as Address,
table1.City as City,
table2.*
from table1
left join (
    select *
    from temp
) table2 on table2.asset_no = table1.asset_no

相关问题