关于SQL条件匹配的问题

有没有大神教我怎么写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
回答交流
Markdown
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
添加图片链接
上传图片
导航目录
Markdown语法参考
请输入正文
提示
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
