Oracle 数据显示 横表转纵表

时间:2024-01-22 23:35:05 

1.建表


-- Create table
create table test
(
dm1 char(3),
dm2 char(3),
mc1 nvarchar2(20),
val nvarchar2(20)
)


2.填入数据如下:

DM1DM2MC1VAL
1011c1100
1011c280
1011c340
1012c130
1012c280
1024c19
1026c250

转换后数据显示如下:

DM1DM2c1c2c3
10111008040
10123080 
10249  
1026 50 

3.转换语句:


select dm1,dm2,sum(decode(mc1,'c1',val)) c1,sum(decode(mc1,'c2',val)) c2,sum(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2


注:该语句是在val为数值的情况下的执行方法,如果val不为数值型,或者包含字符串等类型的话,运用sum会报错,这里可以采用另外一个方法,将sum改为max即可,语句如下:


select dm1,dm2,max(decode(mc1,'c1',val)) c1,max(decode(mc1,'c2',val)) c2,max(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2


此外,横表转纵表亦可用与decode意义相似的case语句实现,原理同该语句,这里不再过多描述。

标签:Oracle,横表,纵表
0
投稿

猜你喜欢

  • mysql 5.7.16 winx64安装配置方法图文教程

    2024-01-26 22:30:25
  • 基于ORA-19815闪回空间爆满问题的处理方法

    2024-01-21 03:35:04
  • vue实现下拉菜单树

    2024-05-09 15:18:39
  • Python基础知识之变量的详解

    2023-12-16 13:41:40
  • 一文带你了解Golang中的WaitGroups

    2024-04-25 13:18:17
  • Linux+php+apache+oracle环境搭建之CentOS下安装Oracle数据库

    2023-10-08 01:02:56
  • nodejs高版本降为低版本的详细解决方案

    2024-05-02 17:40:25
  • 网页编辑常用表现的实现方法

    2010-07-02 16:24:00
  • 解决使用pip安装报错:Microsoft Visual C++ 14.0 is required.

    2022-05-02 14:42:15
  • 38个Asp内置函数介绍

    2008-11-27 16:25:00
  • Python Requests 基础入门

    2022-01-19 10:58:36
  • MySQL更新删除操作update和delete使用详解(小白慎用)

    2024-01-13 14:03:30
  • ASP 80040e14错误的解决方法

    2011-03-17 11:21:00
  • 详解Django CAS 解决方案

    2021-12-06 07:52:11
  • Python标准库之sqlite3使用实例

    2023-08-12 18:44:05
  • Python 实操显示数据图表并固定时间长度

    2021-06-08 02:58:57
  • js原生map实现的方法总结

    2024-04-10 10:47:34
  • 原生JS与jQuery编写简单选项卡

    2024-04-30 09:52:52
  • Python3中正则模块re.compile、re.match及re.search函数用法详解

    2023-04-22 10:03:28
  • 详解python中groupby函数通俗易懂

    2023-03-08 12:27:36
  • asp之家 网络编程 m.aspxhome.com