有沒有辦法加入案件?有沒有辦法加入案件
喜歡的東西
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'部分的作用嗎?你可以合併另外兩張桌子並加入你的狀態。 –