2015-10-29 53 views
1
SELECT qd.new_capid, qd.new_captype, 
cv.* 
FROM quotedetailextensionbase qd 
LEFT JOIN new_capvehicleextensionbase cv 
ON qd.new_capid = cv.new_capid 
AND qd.new_captype = cv.new_type 

一個非常簡單的加入,除了最後一行SQL服務器加入其中fields不同類型的

AND qd.new_captype = cv.new_type 

qd.new_captype爲varchar和可以是「汽車」或「麪包車」 cv.new_type是int和可以是1或2

車= 1 麪包車= 2

有沒有一些方法,我可以「翻譯」一個到另一個做加盟?

感謝

+0

使用CASE語句。 –

+0

@TabAlleman ahem,CASE *表達*。 (對不起) – Lamak

+0

呵呵。謝謝。我從來不知道有什麼區別... http://stackoverflow.com/questions/12436859/case-expression-vs-case-statement –

回答

1

您可以加入一個CASE表達:

SELECT qd.new_capid, qd.new_captype, 
cv.* 
FROM quotedetailextensionbase qd 
LEFT JOIN new_capvehicleextensionbase cv 
ON qd.new_capid = cv.new_capid 
AND (CASE qd.new_captype when 'car' then 1 when 'van' then 2 end) = cv.new_type 
1

如果只能有2的值,可以使用CASE在以下幾點:

AND case qd.new_captype when 'car' then 1 when 'van' then 2 else 0 end = cv.new_type