今天解答问题的总结
table:score(学号,语文,数学,英语,化学)
| 学号 | 语文 | 数学 | 英语 | 化学 |
| 1 | 60 | 90 | 80 | 55 |
| 2 | 88 | 66 | 77 | 89 |
result:score>=80:优秀,60-79:及格,<=59:不及格
| 学号 | 语文 | 数学 | 英语 | 化学 |
| 1 | 及格 | 优秀 | 优秀 | 不及格 |
| 2 | 优秀 | 及格 | 及格 | 优秀 |
实现方法之一:
select * from (
with tt as (select * from score unpivot (cj for kc in ("语文","数学","英语","化学")))
select "学号",kc,
(case when cj>=80 then '优秀' when cj>=60 then '及格' else '不及格' end) cj
--decode(sign(cj-80),0,'优秀',1,'优秀',-1,decode(sign(cj-60),0,'及格',1,'及格','不及格')) cj
from tt)
pivot (max(cj) for kc in ('语文' 语文,'数学' 数学,'英语' 英语,'化学' 化学))
******通过以上学习到pivot与unpivot之间的相互转换
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31525499/viewspace-2151827/ ,如需转载,请注明出处,否则将追究法律责任。