作者stickzor (Sam鸡)
看板Database
标题[SQL ] JOIN的CASE WHEN 问题
时间Mon Oct 13 18:46:45 2014
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称:MSSQL
资料库版本:10.50.4000.0
内容/问题描述:
各位前辈好,
问题如这张图
http://imgur.com/MOFfVWB
想请问下我想把第二张的left join 给第一张,
第三张是想要的结果。
原本有找过类似的文章
https://webptt.com/cn.aspx?n=bbs/Database/M.1402392236.A.E94.html
但是有一个条件不太一样就是我要比对的栏位可能是null,
如果是null则换成第二栏来on,
(ex 如果A.custno 是 null 则 b2.blocno =A.blocno 不然的话就是
A.custno = b1.custno )
我最後写出
SELECT A.*,(ISNULL(b1.empcname,b2.empcname)) as empcname1
FROM A
left join B as b1 on A.custno = b1.custno
left join B as b2 on b2.blocno =A.blocno
但是有问题就是会有重复值。
所以想问一下,
能否有更好的写法 谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.157.198.35
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1413197208.A.C0C.html