我有3张 table
-
表A
-
表B
-
表C.
我需要根据传递的参数将TableA连接到TableB或TableC . 即
select * from
TableA A
join (TableB on <Joining Condition> / TableC on <joining condition> )
我试过以下查询
select * from
TableA A
join (
case when paramB<>'' then TableB on <Joining Condition>
case when paramC<>'' then TableC on <joining condition>
)
但是,这会给出语法错误 . 任何人都可以帮忙吗?
解:
create table #temp (<columns>)
if paramB<>''
begin
select * from
TableA A
join TableB on <Joining Condition>
end
else if paramB<>''
begin
select * from
TableA A
join TableC on <Joining Condition>
end
3 回答
你可以使用
UNION ALL
.请注意
TableB
和TableC
必须具有相同的列数并且具有相同的数据类型,否则将产生错误 .你可以试试这样的东西:
步骤1:使用reqd.columns创建临时表步骤2:如果paramB具有值,则与TableB连接,否则与TableC连接 .