oracle中decode函数,行转列

  • decode函数使用
--一个数据表存放了记录了一个人每天做了什么事,列名有name(姓名),date(日期),data(日记),   date一个日期格式 2021-02-03 
-- 张三 2021-10-10 吃饭
-- 李四 2021-12-12 睡觉 
-- 如果这个天是10月10号显示出生日快乐
select name, decode(to_char(date,'mm-dd'),'10-10','生日快乐') from dual;
结果:张三 生日快乐 
	 李四 12-12
解析:decode函数是第一个参数是一个表达式或是一个值(先取出date中的月和日)和第二个参数比较是否相等,相等则显示第三个参数
--需求显示出每个人的10月10号的日记,
select name,decode(to_char(date,'mm-dd'),'10-10',date)as 十月十号的日记 from dual 
结果:张三 吃饭

select HTXZ,decode(HTXZ,'A','是','B','否')
from BO_EU_HTQC
  • 行转列
数据:  姓名 早上 中午 晚上 
	   张三 包子 大米 粥 
	   李四 饼子 大米 汤 
--查询出谁在什么时间吃了什么饭
select name,时间,食物 from dual unpivot(食物 for 时间 in(早上,中午,晚上));
结果: name 时间 食物
	  张三 早上 包子
	  张三 中午 大米
	  张三 晚上 粥
	  李四 早上 饼子
	  李四 中午 大米
	  李四 晚上 汤
	  unpivot 使用格式是 select 列名,列的列名,行的列名 fromunpivot((数据) for(标题) in(列值1,列值2,))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值