Sql 在Oracle中使用PIVOT操作符
我以前是这样的Sql 在Oracle中使用PIVOT操作符,sql,oracle,pivot,Sql,Oracle,Pivot,我以前是这样的 SELECT * FROM ( SELECT STUDENT_NAME,subject_code ,TERM_I_GRADE FROM tablename ) PIVOT ( TERM_I_GRADE FOR subject_code IN (2001,2002) ) ORDER BY STUDENT_NAME; 选择年份代码“HAVALGA”作为学校名称、班级代码、学生代码、学生名称、卡纳达语、英语、印地语、数学、科学、社交、EVS from 选择 年份代码、班
SELECT * FROM
(
SELECT STUDENT_NAME,subject_code ,TERM_I_GRADE FROM tablename
)
PIVOT
(
TERM_I_GRADE
FOR subject_code IN (2001,2002)
)
ORDER BY STUDENT_NAME;
选择年份代码“HAVALGA”作为学校名称、班级代码、学生代码、学生名称、卡纳达语、英语、印地语、数学、科学、社交、EVS from 选择 年份代码、班级代码、学生代码、学生姓名、, 科目代码,学期成绩作为学期成绩 来自SRSDF\u考试\u学期\u I 哪里 学校代码=1301,学年代码=2016-2017 PIVOTMAXTERM_I_等级 科目代码2001年为KANNADA,2002年为英语, 2003年作为印地语,2004年作为数学, 2005年作为科学,2006年作为社会, 2007年作为电动汽车
按班级代码、学生代码排序 你的问题是什么?我想要这样的输出------stdcode学生名2003 2001 2002 2007 2004 9 Kishan A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A。
std_code Student_Name subject_code TERM_I_GRADE
9 Kishan 2003 A
9 Kishan 2001 A
9 Kishan 2002 A
9 Kishan 2007 A
9 Kishan 2004 A
output
-------------------
stdcode Student_Name 2003 2001 2002 2007 2004
9 Kishan A A A A A
select *
from mytable pivot (max(TERM_I_GRADE) for subject_code in (2003,2001,2002,2007,2004)) p
+----------+--------------+------+------+------+------+------+
| STD_CODE | STUDENT_NAME | 2003 | 2001 | 2002 | 2007 | 2004 |
+----------+--------------+------+------+------+------+------+
| 9 | Kishan | A | A | A | A | A |
+----------+--------------+------+------+------+------+------+