2016-12-15 8 views
-3

Я использовал стержень как этотИспользование оператора ОСИ в Oracle

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; 
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 
+1

Что вы хотите сказать? –

+0

Я хочу выход как этот выход ------------------- stdcode Student Name 2003 2001 2002 2007 2004 9 Kishan AAAAA – kumarh

+0

Вам просто не хватает агрегированной функции в PIVOT , –

ответ

2
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 | 
+----------+--------------+------+------+------+------+------+ 
0

ВЫБОР YEAR_CODE, 'HAVALGA' КАК School_Name, class_code, STUDENT_CODE, STUDENT_NAME, каннада , ENGLISH, HINDI, MATHS, SCIENS, SOCIAL, EVS от (SELECT YEAR_CODE, класс_ код, STUDENT_CODE, STUDENT_NAME, SUBJECT_CODE, TERM_I_GRADE, как TERM_I_GRADE ОТ SRSDF_EXAM_TERM_I ГДЕ
SCHOOL_CODE = 1301 и YEAR_CODE = '2016-2017'

) ОСИ (МАКС (TERM_I_GRADE) ДЛЯ SUBJECT_CODE В (2001 КАК каннаде , 2002 AS ENGLISH, 2003 AS HINDI, 2004 AS MATHS, 2005 AS SCIENS, 2006 AS SOCIAL, 2007 AS EVS)) ORDER BY class_code, STUDENT_CODE;

 Смежные вопросы

  • Нет связанных вопросов^_^