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