为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

这个讲法把外连接的使用场景都讲透了。特别好
select ci_id, wm_concat(name)
from (select ci_id, decode(instr(stu_ids, stu_id), 0, '', stu_name) name
from (select c.ci_id, c.stu_ids, s.stu_id, s.stu_name
from pm_ci c, pm_stu s))
group by ci_id;
11g废弃了wm_concat(),行转列可以使用listagg()
select pc.ci_id,wm_cancat(ps.stu_name) stu names from pm_ci pc ,pm_stu ps where instr( pc.stu_ids,ps.stu_id)>0
group by pc.ci_id;
老师说话好可爱,这谐音太逗了
真的讲的很好
老师讲的很好,思路清晰,表达准确,感谢老师~
6分钟这位置解释rownum,被强行带偏了。在我11g里,rownum始终都是伪列。参考以下两个sql
select rownum,sal from emp order by sal desc;
select rownum,sal from(
select rownum,sal from emp order by sal desc
);
两个sql执行的结果是一样的,除了rownum列。
第一条sql的rownum是乱序的,第二条是有序的。但其他列顺序是一样的。倘若第二条sql中的子查询的rownum在主查询中真的变成了实列,那么两个查询中的rownum列应该相同。
老师的普通话,是香港普通话吗?
-- 设置列宽
col ci_id format a20
col stu_names format a20
--行显示设置
set linesize 100
-- sql查询语句
select pc.ci_id ci_id,wm_concat(pt.stu_name) stu_names
from pm_ci pc,pm_stu pt
where instr(pc.stu_ids,pt.stu_id)>0
group by pc.ci_id;
select *
from (select rownum rm,e1.* from (select * from emp order by sal desc) e1 where rownum<=8) e2
where rm>=5;
刚开始有点不理解,觉得这种求解应该先通过分组函数和avg函数求出每个部门的平均值,再多表查询设定条件合并两张表。现在学习了新方法!省力多了!
select a.ci_id,wm_concat(b.stu_name)
from pm_ci a,pm_stu b
where instr(a.stu_ids,b.stu_id) > 0
group by a.ci_id
给老师点赞!给慕课网点赞。
听了一点点,感觉还不错,表达流畅,停顿有序,逻辑清晰
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消