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

Oracle高级查询

这个老师口齿不清楚,差评
比30号部门任意一人工资高的人信息 为什么查30号部门工资最少的人 不应该比最大的人工资高就比任意一个人都工资高吗 我想不明白了 谁能帮帮我
select c.ci_id,wm_concat(s.stu_name) stu_name
from pm_ci c,pm_stu s
where instr(c.stu_ids,s.stu_id)<>0
group by c.ci_id;
select c.ci_id 学号, wm_concat(decode(instr(c.stu_ids, s.stu_id), 0, '',s.stu_name) ) 选课列表
from pm_ci c, pm_stu s
group by c.ci_id;
1:select c.ci_id cid,s.stu_name sname ,instr(c.stu_ids,s.stu_id)
from pm_ci c,pm_stus s
where instr(c.stu_ids,s.stu_id)<>0;

結果:select b.cid,wm_concat(b.sname) from (1) b group by b.cid;
select a.ci_id,wm_concat(b.stu_name) stu_name from sett.pm_ci a,sett.pm_stu b
where instr(a.stu_ids,b.stu_id)>0
group by a.ci_id
e1里没必要写rownum了,没意义,如果没想清楚很容易被误导
select c.ci_id,wm_concat(c.stu_name) stu_name from
2 (select c.ci_id,s.stu_name from pm_ci c ,pm_stu s where instr(c.stu_ids,s.stu_id)<>0) c 当做新表
3* group by c.ci_id
SELECT *
FROM (SELECT rownum r,empno,ename,sal
FROM (SELECT rownum,empno,ename,sal FROM emp ORDER BY sal DESC ) e1
WHERE rownum <=4) e2
WHERE r>=1;

最外面一次取值直接用*就可以了吧
select c.CI_ID,wm_concat(s.stu_name)STU_NAME from
PM_CI c join PM_STU s
on instr(c.stu_ids,s.stu_id)>0
group by c.ci_id;


CI_ID STU_NAME
1 张三,赵六,王五,李四
2 2 张三,赵六
感觉Oracle的 sql好麻烦。。项目里都是各种from套套套。。。
为什么要用记事本写,怎么不用plsql
赵强老师,真的很强啊
select t.ci_id, (select wm_concat(STU_NAME) from PM_STU t1
where instr(STU_IDS,t1.stu_id)>0) STU_NAME from PM_CI t
--答案
select c.ci_id,wm_concat(s.stu_name)
from pm_ci c left join pm_stu s on
instr(c.stu_ids,s.stu_id)>0 group by c.ci_id;
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消