select * from aa A left join (case A.type when 1 then b else c end ) B on A.comId = B.id
b c 均為表名 根據表aa 中type值決定關聯哪張表 求解
uj5u.com熱心網友回復:
只能用動態 sql 。事先判斷好怎么關聯, 再做 sql 拼接, 再 EXEC (@sql) 或 EXEC sp_executesql
別無它法。
uj5u.com熱心網友回復:
這樣?SELECT A.*, CASE WHEN A.Type = 1 THEN b.something ELSE c.something END something
FROM aa A
LEFT JOIN B ON A.comId = b.id
LEFT JOIN C ON A.comId = c.id;
uj5u.com熱心網友回復:
你可以換個思路去做,比如在表 b 中加一列,名字為 typeid,取值為 1,
表 c 中加一列,名字為 typeid,取值為 0,
先把 b 和 c 兩張表 union all 一下的總表 d,然后用 表 a 和總表 d 做關聯 on a.id = d.id and a.typeid = d.typeid 就得到結果了。
類似SQL
--
select *
from a
left join (
select *,'1' as typeid from b
union all
select *,'0' as typeid from c) d on a.myid = d.myid2 and a.typeid = d.typeid
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/225735.html
標籤:疑難問題
上一篇:matlab
下一篇:請問安裝qt出現這個怎么辦
