作者gundan (弹弹的哀伤)
看板Database
标题[SQL ] 两个TABLE JOIN 有两个CASE用不同条件
时间Wed Dec 19 13:47:05 2012
问题是这样的
我有两个TABLE 要把他做JOIN
一个语法如下
SELECT A.AC,F1,F2,F3 FROM
(SELECT * FROM TABLEA) A
JOIN
(SELECT * FROM TABLEB WHERE LENGTH(AC)=4) B
ON SUBSTR(A.AC,1,4)=SUBSTR(B.AC,1,4)
另一个则如下
SELECT C.AC,F1,F2,F3 FROM
(SELECT * FROM TABLEA )C
JOIN
(SELECT * FROM TABLEB WHERE LENGTH(AC)=5) D
ON SUBSTR(C.AC,1,5)=SUBSTR(D.AC,1,5) AND
C.FLAG = D.FLAG
这两个我想放在一起,我只知道用UNION,直接上面加下面
可是这样SQL看起来又臭又长的很难看
想请问一下,有没有比较好的做法来处理这个东西呢?
(可以在JOIN後面的ON XXX=YYY那里加上IF或CASE WHEN吗?)
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.30.37