关于SQL条件匹配的问题
10M
有没有大神教我怎么写SQL呢,不会写条件判断,想通过一条SQL实现上面需求。
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
3条回答
默认
最新
首先我假定你的deptno在beijing和wuhan是不重复的。
WUHAN和BEIJING这两个表明显是一个数据拆成了两张表,理论上就应该竖着放(UNION ALL),这样才容易扩展新省份的表。
比如
SELECT e.*,c.location FROM EMP E,
(
SELECT 'A' E,A.* FROM BEIJING A
UNION ALL
SELECT 'B',B.* FROM WUHAN B
) C
WHERE E.deotno=C.deotno(+)
AND SUBSTR(E.ename,1,1)=C.E;
如果你一定要根据条件关联不同的表,即横着排,那么你select的字段就会写得比较复杂了
select e.*,
case
when substr(e.ENAME,1)='A' THEN A.LOCATION
WHEN substr(e.ENAME,1)='B' THEN B.LOCATION
END LOCATION
from emp e,BEIJING A,WUHAN B
where E.deotno=A.deotno(+)
AND E.deotno=B.deotno(+);
评论
有用 0
select a.id,a.ename,a.depton from emp a,beijing b,wuhan c where a.deptno=b.deptno and a.deptno=c.deptno
评论
有用 0写union all吧。
select * from emp a inner join bejing b on a.deptno = b.deptno
where a.ename like 'A_'
union all
select * from emp a inner join wuhan b on a.deptno = b.deptno
where a.ename like 'B_'
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

