hgdb 实现Oracle pivo函数(APP)

本文详细介绍如何在瀚高数据库中实现Oracle特有的多行转列功能。通过对比Oracle的Pivot语法,瀚高数据库采用decode函数配合group by实现相同效果。示例包括四川省和湖北省的城市排名转换。

目录

环境

文档用途

详细信息

环境

系统平台:Microsoft Windows (64-bit) 10

版本:4.3.2

文档用途

 瀚高数据库实现Oracle中的多行转列

详细信息

Oracle

with temp as(

select '四川省' nation ,'成都市' city,'第一' ranking from dual union all

select '四川省' nation ,'绵阳市' city,'第二' ranking from dual union all

select '四川省' nation ,'德阳市' city,'第三' ranking from dual union all

select '四川省' nation ,'宜宾市' city,'第四' ranking from dual union all

select '湖北省' nation ,'武汉市' city,'第一' ranking from dual union all

select '湖北省' nation ,'宜昌市' city,'第二' ranking from dual union all

select '湖北省' nation ,'襄阳市' city,'第三' ranking from dual

)

select * from (select nation,city,ranking from temp)pivot (max(city) for ranking in ('第一' as 第一,'第二' AS 第二,'第三' AS 第三,'第四' AS 第四));

HGDB

实现方式一:

 

with temp as(

select '四川省' nation ,'成都市' city,'第一' ranking from dual union all

select '四川省' nation ,'绵阳市' city,'第二' ranking from dual union all

select '四川省' nation ,'德阳市' city,'第三' ranking from dual union all

select '四川省' nation ,'宜宾市' city,'第四' ranking from dual union all

select '湖北省' nation ,'武汉市' city,'第一' ranking from dual union all

select '湖北省' nation ,'宜昌市' city,'第二' ranking from dual union all

select '湖北省' nation ,'襄阳市' city,'第三' ranking from dual

)

select nation,

max(decode(ranking, '第一'::varchar, city, ''::varchar)) as 第一,

max(decode(ranking, '第二'::varchar, city, ''::varchar)) as 第二,

max(decode(ranking, '第三'::varchar, city, ''::varchar)) as 第三,

max(decode(ranking, '第四'::varchar, city, ''::varchar)) as 第四

from temp group by nation order by nation desc ;

更多详细信息请登录【瀚高技术支持平台】查看瀚高技术支持平台

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值