我有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 oncase 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 onwhere paramB <> '' union all select * from a join TableC on where paramC <> ''
请注意,TableB
并且TableC
必须具有相同数量的列并具有相同的数据类型,否则将产生错误.
你可以用UNION ALL
.
select * from a join TableB onwhere paramB <> '' union all select * from a join TableC on where paramC <> ''
请注意,TableB
并且TableC
必须具有相同数量的列并具有相同的数据类型,否则将产生错误.