oracle函数之行转列pivot

1:oracle—pivot 行转列

对结果集进行分组展示处理
在这里插入图片描述

--行转列
select *
  from SalesList pivot(
    max(salesNum) for shangPin in (    --shangPin 即要转成列的字段
        '上衣' as 上衣,                 --max(salesNum) 此处必须为聚合函数,
        '裤子' as 裤子,                 --in () 对要转成列的每一个值指定一个列名
        '袜子' as 袜子,
        '帽子' as 帽子
    )
  )
 where 1 = 1;                          --这里可以写查询条件,没有可以直接不要where

注意: pivot(聚合函数 for 列名 in(类型)) ,其中 in(‘’) 中可以指定别名,in中还可以指定子查询,比如 select distinct code from customers

列 增加名称为in里的列,对应的值聚合后显示

2:oracle行转列用mysql实现

达到以上效果

select name, sum(case when shangPin='上衣' then salesNum else 0 end) as 上衣,
sum(case when shangPin='裤子' then salesNum else 0 end) as 裤子,
sum(case when shangPin='袜子' then salesNum else 0 end) as 袜子,
sum(case when shangPin='帽子' then salesNum else 0 end) as 帽子 from 
(select * from SalesList) a

3:oracle 日期转换用mysql实现

oracle :select to_char(sysdate,'yyyy-MM-dd HH24:Mi:SS') from dual
mysql:select date_format(now(),'%Y-%m-%d %H:%i:%s') from dual
oracle :select to_date('20200524','yyyy-MM-dd') from dual
mysql:select str_to_date('20200524','%Y-%m-%d') from dual

注意date_format第一个参数为日期格式

4:oracle 中文拼音排序mysql实现

oracle :select * from emp nlssort(name,'NLS_SORT = SCHINESE_PINYIN_M')
mysql:select * from emp convert(name using gbk) asc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值