我想寫一個SQL查詢,我加入兩個表,並檢索幾列。一旦完成,基於兩個字段(源表枚舉,相應源表中的id),我需要檢索與源表中的id匹配的值。嵌套案例內的SQL查詢
的問題是,我不能參加所有的源表,並希望做這樣的事情:
Select
X.Col1,
X.Col2,
Y.Col1,
Y.Col2,
CASE
WHEN Y.TableID = 4 THEN Select t4.Col1 FROM TableFour t4 WHERE t4.id = Y.FileID
WHEN Y.TableID = 5 THEN Select t5.Col4 FROM TableFive t5 WHERE t5.id = Y.FileID
END
FROM Table X INNER JOIN Table Y ON X.ID = Y.XID
我可以保證所有的源表檢索的值將是相同的(即NVARCHAR )。
在CASE語句中嵌套SQL查詢似乎不起作用,我把它扔給你們。有這個問題的任何想法?
希望我充分解釋了這個問題。如果你不確定,請發表評論,以便我澄清它。
提前歡呼!
MSSQL Server 2008的 – 2010-09-03 02:14:37
我不明白什麼叫「不可能加入所有的源表」的意思是,你能不能解釋一下? – 2010-09-03 02:30:26
@AlexKuznetsov:加入這些表可能會引入OP不希望出現在最終結果集中的附加行... – 2010-09-03 02:31:44