Oracle 交叉表 固定值 行转列

本文介绍如何使用Oracle SQL进行交叉表查询,特别针对速度值为预设集合的情况。通过使用DECODE函数或CASE语句实现对特定速度值的数据聚合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle 交叉表 固定值


如果速度固定只有0 20 50 100 150这几个值,可以:
select
No,
sum(decode(速度,'0',值,0)),
sum(decode(速度,'20',值,0)),
sum(decode(速度,'50',值,0)),
sum(decode(速度,'100',值,0)),
sum(decode(速度,'150',值,0))
from 表
group by No


Top
7 楼tonyring()回复于 2006-11-28 22:51:47 得分 10
select No,
sum(case when 速度 = 0 then 值 else 0 end) 0,
sum(case when 速度 = 20 then 值 else 0 end) 20,
sum(case when 速度 = 50 then 值 else 0 end) 50,
sum(case when 速度 = 100 then 值 else 0 end) 100,
sum(case when 速度 = 150 then 值 else 0 end) 150,
sum(case when 速度 = 200 then 值 else 0 end) 200
from 表
group by No
-- group by No 无合计
-- group by cube(No) 出现顶行合计
-- group by rollup(No) 出现底行合计
order by No


不用动态sql,那就需要知道速度值都有多少,然后decode或case了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值