oracle行转列 和 列转行

原创 2012年04月06日 09:16:55

最近在面试的时候碰到这样一个问题有三个表 分别为 学生表(student) 课程表(course) 分数表(score)

学生表

学生Id 学生姓名
1 张三
2 李四

课程表

课程ID 课程名
1 语文
2 数学

分数表

分数 课程ID 学生ID
98 1 1
95 2 1
80 1 2
85 2 2
 把上面三张表显示成
姓名 语文成绩 数学成绩
张三 98 95
李四 80 85

运用子查询

select  student.stuent_id ,(select score from score where score.stuent_id = s1.student_id and score.course.course_id = 1),,(select score from score where score.stuent_id = s1.student_id and score.course.course_id = 2)  From student  s1

行转列

select  s1.name min(decode(score.course_id ,1,score)),min(decode(score.course_id ,2,score)) FROM STUENT ,SCORE WHERE STUDENT.STUDENT_ID = SCORE.STUDENT_ID GROUP BY NAME

至于列转行的方法就是用

 

 

相关文章推荐

oracle行转列_列转行

  • 2012年11月09日 15:11
  • 70KB
  • 下载

Oracle 行转列和列转行

一、行转列 1.1、初始测试数据 表结构:TEST_TB_GRADE Sql代码: ? 1 2 3 4 5 6 7 create table TES...

[面试][oracle] 数据库 行转列 列转行详解

[一]、行转列   1.1、初始测试数据   表结构:TEST_TB_GRADE   create table TEST_TB_GRADE    ( ...
  • wfh6732
  • wfh6732
  • 2017年03月06日 00:53
  • 82

Oracle行转列、列转行的Sql语句总结

目录结构如下: 行转列 列转行 [一]、行转列   1.1、初始测试数据   表结构:TEST_TB_GRADE   Sql代码  create table TEST_TB_GRA...

oracle行转列、列转行

一、行转列 需要将如下格式 转换为:   这就是最常见的行转列,主要原理是利用decode函数、聚集函数(sum),结合group by分组实现的   create table t...

Oracle行转列、列转行的Sql语句总结

Oracle行转列、列转行的Sql语句总结http://www.2cto.com/database/201501/367164.html 2015-01-06      0 个评论    来源:...

oracle行转列和列转行

oracle行转列和列转行

Oracle基础——行转列、列转行SQL总结

wm_concat函数     首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用准备测试数据 ...

Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

Oracle 行转列、列转行 的Sql语句总结

Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行

Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
  • Seandba
  • Seandba
  • 2017年05月25日 16:18
  • 2610
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle行转列 和 列转行
举报原因:
原因补充:

(最多只允许输入30个字)