当前位置:  开发笔记 > 编程语言 > 正文

根据条件选择连接表

如何解决《根据条件选择连接表》经验,为你挑选了1个好方法。

我有3张桌子

    表A

    表B

    表C

我需要根据传递的参数将TableA连接到TableB或TableC.即

select * from 
TableA A 
join (TableB on  /  TableC on  )

我试过以下查询

select * from 
TableA A 
join (
   case when paramB<>'' then TableB on 
   case when paramC<>'' then TableC on 
 )

但是,这会给出语法错误.任何人都可以帮忙吗?

解:

create table #temp ()
if paramB<>''
begin
   select * from 
   TableA A 
   join TableB on 
end
else if paramB<>''
begin
  select * from 
   TableA A 
   join TableC on 
end

Felix Pamitt.. 5

你可以用UNION ALL.

select *
from a
join TableB on 
where paramB <> ''

union all

select *
from a
join TableC on 
where paramC <> ''

请注意,TableB并且TableC必须具有相同数量的列并具有相同的数据类型,否则将产生错误.



1> Felix Pamitt..:

你可以用UNION ALL.

select *
from a
join TableB on 
where paramB <> ''

union all

select *
from a
join TableC on 
where paramC <> ''

请注意,TableB并且TableC必须具有相同数量的列并具有相同的数据类型,否则将产生错误.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有