SQL服务器加入字段不同类型

时间:2015-10-29 14:09:21

标签: sql-server

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

一个非常简单的连接,除了最后一行

AND qd.new_captype = cv.new_type

qd.new_captype是varchar,可以是“car”或“van” cv.new_type是int,可以是1或2

car = 1 van = 2

有什么方法可以“翻译”一个到另一个来进行连接吗?

由于

2 个答案:

答案 0 :(得分:1)

如果只有2个值,则可以在以下内容中使用CASE

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

答案 1 :(得分: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