有没有办法加入案件?有没有办法加入案件
喜欢的东西
select * from abba
case when a=b then
join acdc on abba.id=acdc.id
when b=c then
join bebop on abba.id=bebop.id
end
有没有办法做到这一点?
问候 乔
有没有办法加入案件?有没有办法加入案件
喜欢的东西
select * from abba
case when a=b then
join acdc on abba.id=acdc.id
when b=c then
join bebop on abba.id=bebop.id
end
有没有办法做到这一点?
问候 乔
如果查询非动态那么没有,因为case
语句只返回文字值,如string
,int
或其他数据类型。
但有一个解决方法 - 动态sql。您将整个语句视为一个字符串。然后,您可以在字符串中处理您的案例。
例如:
declare @query varchar(1000)
set @query = 'select * from abba '+
case when @[email protected] then 'join acdc on abba.id=acdc.id'
when @[email protected] then 'join bebop on abba.id=bebop.id'
end
exec(@query)
但ofcourse,你的A = B & B = C必须有一些SQL变量。
这不就是'on'部分的作用吗?你可以合并另外两张桌子并加入你的状态。 –