请教create view如何根据select结果创建视图的列

Sinc执着 2015-03-12 04:05:54
第一张表course
no name
001 数学
002 语文
003 英语
第二张表student
no name
S001 小红
S002 小明
第三张表mark
studentno courseno score
S001 001 90
S002 002 88
S001 003 70
请问如何创建一个view能够实现
name 数学 语文 英语
小红 90 70
小明 88
...全文
445 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
syhsl20 2015-03-12
  • 打赏
  • 举报
回复
你是试一下不就知道了
Sinc执着 2015-03-12
  • 打赏
  • 举报
回复
打字太快了,我是想说,如果表里面的数据多了这个代码就办不到了吧。
Sinc执着 2015-03-12
  • 打赏
  • 举报
回复
引用 1 楼 syhsl20 的回复:
行转列
select student.name,max(case when  course.name='数学' then score  end) "数学"
,max(case when  course.name='语文' then score  end) "语文"
,max(case when  course.name='英语' then score  end) "英语" from (
  select '001'no,'数学' name from dual
  union all
  select '002', '语文' from dual 
  union all
  select '003', '英语' from dual
)course,
(
    select 'S001'no ,'小红' name from dual
    union all
    select 'S002','小明'  from dual
) student
,(
    select 'S001' studentno,'001' courseno,90 score from dual
    union all
    select 'S002','002',88 from dual
    union all
    select 'S001','003',70 from dual
) mark
where course.no= mark.courseno and student.no=mark.studentno
group by student.name
如果第一张表里的里面的数据多了肿么搞。。。。
syhsl20 2015-03-12
  • 打赏
  • 举报
回复
行转列
select student.name,max(case when  course.name='数学' then score  end) "数学"
,max(case when  course.name='语文' then score  end) "语文"
,max(case when  course.name='英语' then score  end) "英语" from (
  select '001'no,'数学' name from dual
  union all
  select '002', '语文' from dual 
  union all
  select '003', '英语' from dual
)course,
(
    select 'S001'no ,'小红' name from dual
    union all
    select 'S002','小明'  from dual
) student
,(
    select 'S001' studentno,'001' courseno,90 score from dual
    union all
    select 'S002','002',88 from dual
    union all
    select 'S001','003',70 from dual
) mark
where course.no= mark.courseno and student.no=mark.studentno
group by student.name

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧