gpt4 book ai didi

sql - 有条件地从多个表加入

转载 作者:行者123 更新时间:2023-12-04 22:16:53 24 4
gpt4 key购买 nike

SQL 是否允许在 Join 语句中进行某种形式的条件“表选择”? IE。根据预定义的变量/条件选择不同的表进行连接。

define var = 1
select *
from tbl
join (case when &var=1 then tblA when &var=2 then tblB else tblC end) a on tbl.id = a.id

我在尝试此方法时遇到的错误是ORA-00905:缺少关键字

最佳答案

没有。 SQL 和 Oracle 都不允许这样做,除非您使用动态 SQL。

假设表具有相同的列,您可以将此逻辑编写为:

select * 
from tbl join
(select a.* from tblA where &var = 1 union all
select b.* from tblB where &var = 2 union all
select c.* from tblC where &var not in (1, 2)
) abc
on tbl.id = abc.id;

关于sql - 有条件地从多个表加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com