行列倒置(一)(oracle)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

表结构及数据如下:

 

按月份统计结果:

 

select substr(syear,5,2) 月份,sum(smoney) 钱  from sellmoney group by substr(syear,5,2);

 

 

实现行列倒置:将月份由行置换成 每一列

(1)

select

sum(case when substr(syear,5,2)='01' then smoney end) as  一月,
sum(case when substr(syear,5,2)='02' then smoney end) as  二月,
sum(case when substr(syear,5,2)='03' then smoney end) as 三月,
sum(case when substr(syear,5,2)='04' then smoney end) as 四月

from sellmoney;

 

(2)

select

sum(decode(substr(syear,5,2),'01',smoney,0)) 一月,

sum(decode(substr(syear,5,2),'02',smoney,0))   二月,
sum(decode(substr(syear,5,2),'03',smoney,0))  三月,

sum(decode(substr(syear,5,2),'04',smoney,0))  四月

from sellmoney;

 

结果如下:

 

行列互换-高级语法-oracle 文章目录1、行转列2、列转行3、行列互换 我最近在做个Java web项目,其中某个模块设计需要展示数据表格和图标,如图, 而数据库中数据存在2张表中(数据版本为oracle 11g): 表1 存储的配置表 ,图示: 表2存储的为数据(数值),图示: 那么我们改如何把表中数据转换为上面我们我们想要展示的数据呢? 通过观察发现: 目标数据3个单位列对应我们表2中的3个单位id 目标数据的类别类对应表2中xm2列 目标数值对应表2中的n1列 目标数据最后行数据为dm ‘0306’ 阅读详情

相关推荐

powerDesigner与Oracle相互倒数据技巧

PowerDesigner中批量根据对象的name生成comment的脚本 PowerDesigner中逆向工程将数据库中comment脚本赋值到PDM的name

Oracle行列倒置

通过unpivot和pivot函数实现Oracle中行和列的倒置

alpha105的博客 642

Oracle行列转换

Oracle行列转换,个挺经典的例子,值得学习和思考……

Oracle倒置表格,Oracle数据库表行列倒置

--删除学生成绩表drop table stuStore;--创建学生成绩表create table stuStore(stuNum number(4), --学号stuClass varchar2(20), --课程stuStores number(3) --成绩);--向学生成绩表中插入测试数据insert into stuStore values(1,'语文',100);insert int...

weixin_33099377的博客 226

Oracle倒置函数 reverse

次在论坛上看到Oracle还有这样个函数.呵呵,看来要学的东西是越来越多了.所以记下来.SQL> select reverse('olleh') from dual;REVERSE('OLLEH')---------...

comf0000的博客 465

oracle 行列倒置,Oracle 行列转换函数

Oracle 10g wmsys.wm_concat行列转换函数的使用:首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成行,接下来上例子,看看这个神奇的函数如何应用1、把结果按分组用逗号分割,以行打印出来。(如果需要换其它的可以用replace函数:replace(wm_concat(name),',','|'))select t.u_id...

weixin_29863809的博客 525

oracle 行列倒置,oracle 行列转换 列名数字

oracle 行列转换列名如果是数字,用双引号包住 如下:-- 建表create table workinfo(wid integer primary key,sid integer ,CONSTRAINT sid foreign key(sid) references student(sid),city nvarchar2(100),-- 就业城市wage number(10,2),-- 月...

weixin_34023576的博客 315

oracle 行列倒置,使用分析函数进行行列转换

使用分析函数进行行列转换提问。其实使用分析函数进行处理是很好的方式,翻下Tom的书,将其中的个例子收录在这里.比如查询scott.emp表的用户SAL排序信息,可以使用如下查询:SQL> SELECT deptno, ename,2 ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) seq3 FRO...

weixin_39616686的博客 167

Oracle数据库表行列倒置

--删除学生成绩表 drop table stuStore; --创建学生成绩表 create table stuStore  (    stuNum number(4), --学号   stuClass varchar2(20), --课程   stuStores number(3) --成绩 ); --向学生成绩表中插入测试数据 insert into stuStore v

左手倒影,右手年华 2090

oracle 行列倒置,Oracle 行列转换小结

-- 建立测试数据drop table heyf_t8;create table heyf_t8 (APP_ID VARCHAR2(20) ,APP_CATEGORY_ID VARCHAR2(20) );insert into heyf_t8 values ('1','A');insert into heyf_t8 values ('1','b');inser...

weixin_35825858的博客 222

SQL 行列倒置(Oracle+SQL server)

注明: 摘自 CSDN 论坛。/*标题:普通行列转换(version 2.0)作者:爱新觉罗.毓华 时间:2008-03-09地点:广东深圳说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。问题:假设有张学生成绩表(tb)如下:姓名

波波的专栏 1765

oracle倒置数字,Oracle反转倒置函数

Oracle提供了个反转倒置函数reverse,但此函数不能分组倒置,本文提供了个即可分组倒置的函数,如下所示:CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:=',')RETURN VARCHAR2 IS--===========================================...

weixin_30951271的博客 635

oracle 表 队列,Oracle数据库表队列倒置

Oracle数据库表行列倒置--删除学生成绩表drop table stuStore;--创建学生成绩表create table stuStore(stuNum number(4), --学号stuClass varchar2(20), --课程stuStores number(3) --成绩);--向学生成绩表中插入测试数据insert into stuStore values(1,'语文',1...

weixin_35090568的博客 213

SQL行列倒置

例: --数据表中行列转换 create table stuStore ( stuNum int, stuClass varchar(20), stuStores int )--drop table stuStore insert into stuStore values(1,'语文',100); insert into stuStore values(1,'数学',56); insert int

isprotect的专栏 2890

oracle 条件反转,Oracle反转倒置函数

Oracle提供了个反转倒置函数reverse,但此函数不能分组倒置,本文提供了个即可分组倒置的函数,如下所示:Oracle提供了个反转倒置函数reverse,但此函数不能分组倒置,,本文提供了个即可分组倒置的函数,如下所示:CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:='')RETUR...

weixin_39796839的博客 238

oracle 行列倒置,Oracle行列转置

创建两张测试表SQL>createtablet1as2select'one'asd1,3'two'asd2,4'three'asd3,5'four'asd4,6'five'asd5fromdual;SQL>createtablet2(dvarchar2(10),desvarchar2(50);转置SQ...

weixin_35327421的博客 211

Oracle倒置表格,SQL 行列倒置(Oracle+SQL server)

create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)insert into tb values('张三' , '语文' , 74)insert into tb values('张三' , '数学' , 83)insert into tb values('张三' , '物理' , 93)insert into tb values('李四'...

weixin_39961369的博客 210

Oracle反转倒置函数

Oracle提供了个反转倒置函数reverse,但此函数不能分组倒置,本文提供了个即可分组倒置的函数,如下所示:CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:='') RETURN VARCHAR2 IS v_return VARCHAR2(4000); vp_str VARCH

huangbaokang的博客 1252
上一篇: sql语句 根据条件分支执行--执行sql语句中的一部分(oracle)
下一篇: 工作一年总结--sql语句(mysql)
coney_12
博客等级 码龄14年 2粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值