【发布时间】:2016-04-12 19:50:49
【问题描述】:
我有 3 张桌子
- 表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
【问题讨论】:
-
你试过动态sql吗?
-
我不想使用动态查询。有没有其他方法..?
-
你需要使用动态sql查询。
-
你必须使用动态查询
-
if-else 语句怎么样?还是您希望在单个查询中进行此操作?
标签: sql-server join