当前位置: 首页 > article >正文

Oracle-行列转化实际的工作应用

create table score_line

(

  sname   varchar2(20)

 ,subject varchar2(20)

 ,score   number(3)

);

create table score_col

(

  sname varchar2(20)

 ,yuwen number

 ,shuxue number

 ,yingyu number

);

-- 列转行

-- 方法1  union all

select s.sname,‘数学’as subject,s.shuxue as score from score_col s

union all

select s.sname,‘英语’ as subject,s.yingyu as score from score_col s;

 --方法2 oracle  自带的 列转行 函数

  select sname,subject,score

  from score_col

  unpivot ( score for subject in(yuwen,shuxue,yingyu) );

-- 示例  

select sname,subject,score

  from score_col

 unpivot ( score for subject in(yuwen as ‘语文’,shuxue as ‘数学’,yingyu as ‘英语’) );

 -- 行转列  

-- 方法1  关联

-- 方法2 decode

select s.sname

      ,sum(decode(s.subject,‘语文’,s.score,0)) as yuwen

      ,sum(decode(s.subject,‘数学’,s.score,0)) as shuxue

      ,sum(decode(s.subject,‘英语’,s.score,0)) as yingyu

  from score_line s

 group by s.sname;

-- 方法3 case when

select s.sname

      ,sum(case when s.subject = ‘语文’ then s.score else 0 end ) as yuwen

      ,sum(case when s.subject = ‘数学’ then s.score else 0 end ) as shuxue

      ,sum(case when s.subject = ‘英语’ then s.score else 0 end ) as yingyu

  from score_line s

 group by s.sname;

 -- 方法4 oracle 自带的 行转列 函数  

select *

  from score_line 

pivot ( sum(score) for subject in(‘语文’ as yuwen,‘数学’ as shuxue,‘英语’ as yingyu) );

 


http://www.kler.cn/a/410057.html

相关文章:

  • 华为无线AC+AP组网实际应用小结
  • bridge-multicast-igmpsnooping
  • candence: 常用的一些命令: Move / Mirror / Rotate / Spain / Fix / unFix / Flipdesign
  • CTF-RE 从0到 N: 高版本 APK 调试 + APK逻辑修改再打包 + os层调试[2024 强网杯青少年专项赛 Flip_over] writeup
  • C++:用红黑树封装map与set-2
  • ros2学习日记_241124_ros相关链接
  • Diving into the STM32 HAL-----Timers笔记
  • w053基于web的宠物咖啡馆平台的设计与实现
  • JavaScript的let、var、const
  • QMenuBar中item同时显示图标和文字
  • Python人工智能项目报告
  • PHP 超级全局变量
  • 代码管理之Gitlab
  • 利用Python爬虫获得1688按关键字搜索商品:技术解析
  • Linux文件编程(持续更新)
  • docker compose 使用记录
  • 随手记:鼠标触顶方法
  • rust宏系列教程-利用派生宏和属性宏增强struct功能
  • uniapp实现APP版本升级
  • 浅谈网络 | 传输层之TCP协议
  • cocos creator 3.8 打飞机Demo 9
  • Vscode 删除键删除失效
  • Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)
  • ip代理池新玩法,收集全网可用代理01,初次验证存活ip
  • 如何判断注入点传参类型--理论
  • 分布式搜索引擎之elasticsearch单机部署与测试