6、oracle的decode函数实现行转列
oracle的decode函数实现行转列
1、decode函数语法
decode(字段,所匹配的值,列所显示的值)
2、示例
2.1、数据库数据
有一个学生表 :sys_stu
,
字段有 学生id:stu_id
,学生名称:stu_name
,学生科目:stu_item
,学生成绩 stu_grade
数据库数据如下:
stu_id | stu_name | stu_item | stu_grade |
---|---|---|---|
1 | 张三 | 英语 | 80 |
2 | 张三 | 语文 | 90 |
3 | 张三 | 数学 | 85 |
4 | 李四 | 英语 | 70 |
5 | 李四 | 语文 | 85 |
6 | 李四 | 数学 | 95 |
7 | 小红 | 英文 | 90 |
8 | 小红 | 语文 | 80 |
9 | 小红 | 数学 | 85 |
创表语句如下:
drop table sys_stu; create table sys_stu( stu_id number(11), stu_name varchar2(100), stu_item varchar2(100), stu_grade number(16,2) ); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(1,'张三','英语',80); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(2,'张三','语文',90); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(3,'张三','数学',85); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(4,'李四','英语',70); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(5,'李四','语文',85); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(6,'李四','数学',95); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(7,'小红','英语',90); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(8,'小红','语文',80); insert into sys_stu(stu_id,stu_name,stu_item,stu_grade) values(9,'小红','数学',85); commit;
2.2、需求
实现打印每位同学的成绩单
学生名称 | 英语 | 语文 | 数学 |
---|---|---|---|
张三 | 80 | 90 | 85 |
李四 | 70 | 85 | 95 |
小红 | 90 | 80 | 85 |
sql写法如下:
select stu_name as 学生名称, sum(decode(stu_item,'英语',stu_grade)) as 英语, sum(decode(stu_item,'语文',stu_grade)) as 语文, sum(decode(stu_item,'数学',stu_grade)) as 数学 from sys_stu group by stu_name;
标签:
oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!