[SQL ] JOIN的CASE問題
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:MSSQL
資料庫版本:10.50.2500
內容/問題描述:
http://i.imgur.com/ScDmy9z.png

又來問問題了 艸
這次是個JOIN的問題,想將右邊的TABLE B LEFT JOIN給左邊的A
產生下面的結果
但因為A的Acolumn2有空白的,這樣怎麼ON好像都不太對…
以下是測試過的兩個錯誤結果
原本想說看用isnull可不可以讓原本空白的地方先有資料 不過亂弄一下看起來不能這樣
做
-----
select
Acolumn1,
isnull(A.Acolumn2 ,A.Acolumn1) AS Acolumn2,
Acolumn3,
Acolumn4,
Acolumn5,
from A A
left join B B on A.Acolumn2 = B.Bcolumn2
order by Acolumn1
-----
後來看到有人在left join後的條件後面弄case when 但照著弄會在
(A.Acolumn1=B.Bcolumn2)出現錯誤
-----
select
Acolumn1,
Acolumn2,
Acolumn3,
Acolumn4,
Acolumn5,
from A A
left join B B on A.Acolumn2 = B.Bcolumn2
and case when A.Acolumn2 = '' then (A.Acolumn1=B.Bcolumn2)
order by Acolumn1
-----
請問有什麼比較好的解法嗎?謝謝/
--
Sent from my HR-93.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.87.137.190
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1402392236.A.E94.html
→
06/10 21:24, , 1F
06/10 21:24, 1F
推
06/10 21:42, , 2F
06/10 21:42, 2F
→
06/10 21:42, , 3F
06/10 21:42, 3F
→
06/10 21:42, , 4F
06/10 21:42, 4F
→
06/10 21:43, , 5F
06/10 21:43, 5F
推
06/10 21:47, , 6F
06/10 21:47, 6F
→
06/10 21:47, , 7F
06/10 21:47, 7F
→
06/11 08:56, , 8F
06/11 08:56, 8F
select
Acolumn1,
Acolumn2,
Acolumn3,
Acolumn4,
Acolumn5,
from A A
left join B B on (case when A.Acolumn2 = ''
then A.Acolumn1
else A.Acolumn2
end) =B.Bcolumn2
order by Acolumn1
成功了,謝謝scpisces的指點!
※ 編輯: bulmungtw (219.87.137.190), 06/11/2014 09:46:02