Oracle turns the results line into columns

Source: Internet
Author: User

1, the table has the following data

Name Subjects January February March
Tom Chinese 30 40 50
Tom Mathematical 56 65 78
Tom English 28 86 48
John doe Chinese 31 41 51
John doe Mathematical 57 66 79
John doe English 29 87 49
The first to be converted into

Name January language February language March language January Mathematics February Mathematics March Mathematics January English February English March English
John doe 31 41 51 57 66 79 29 87 49
Tom 30 40 50 56 65 78 28 86 48

2. Build test data

CREATE TABLE grade_table (   stu_name varchar),   SUBJECT varchar,   MONTH1 INT DEFAULT 0,--January   MONTH2 INT default 0,--February   MONTH3 INT default 0); insert into grade_table (STU_NAME,SUBJECT,MONTH1,MONTH2,MONTH3) VALUES (' Zhang San ', ' Language ', ' (') ', ' + ', ' + '), insert into grade_table (STU_NAME,SUBJECT,MONTH1,MONTH2,MONTH3) VALUES (' Zhang San ', ' math ', ' 56 ', ' (' grade_table '), insert into stu_name,subject,month1,month2,month3 values (' Zhang San ', ' English ', ' ['] ', ' + '); insert Into grade_table (STU_NAME,SUBJECT,MONTH1,MONTH2,MONTH3) VALUES (' John Doe ', ' language ', ' + ', ' a ', ') '; insert into grade_table ( STU_NAME,SUBJECT,MONTH1,MONTH2,MONTH3) VALUES (' John Doe ', ' math ', ' the ' ', ' ' "', '" ') ', ' + '), insert into grade_table (Stu_name,subject, MONTH1,MONTH2,MONTH3) VALUES (' John Doe ', ' English ', ' 29 ', ' 87 ', ' 49 ');


3. Handling SQL

Select Stu_name,sum (January languages) January language, sum (February language) February language, sum (March language) March language, sum (January math) January math, sum (February math) February math, sum (March math) March math, sum (January English  January English, sum (February English) February English, sum (March English) March English from (select Stu_name,sum (case subject when ' language ' then Month1 end) as January language, sum (case Subject when ' language ' then Month2 end) as February language, sum (case subject when ' language ' then Month3 end) as March language, sum (case subject when ' number Learn ' then Month1 end ' as January math, sum (case subject when ' math ' then Month2 end) as February math, sum (case subject when ' math ' then month3 E nd) as March mathematics, sum (case subject when ' English ' then Month1 end) as January English, sum (case subject when ' English ' then Month2 end) as February English, sum ( Case subject when ' English ' then Month3 end ' as March English from Grade_table Group by Stu_name,subject] GROUP by Stu_name  --danieli Nbiti


Oracle turns the results line into columns

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.