coalesce(),row_number() over(partition by order by),case...when...then...else..end,decode()的使用方法

coalesce()

coalesce(字段1,字段2...0)
--先判断第一个字段的值是否为null,如果不是则取字段1的值,如果是则往后判断,直至取到不为null的值,常用在多表关联

示例:

select t.device_number hm,
       coalesce(t1.fee, t2.fee, t3.fee, 0) fee
  from emp t.......--后省略

row_number() over(partition by order by)

row_number() over(partition by 字段1 order by 字段2, 字段3 desc)
/*row_number是分页函数,
partition by 是指按照后面的字段分区,
order by 后面是按照什么方式排序,先以字段2排序,再以字段3排序
合在一起就是按照字段1来分组,并以字段2,字段3方式排序
*/

示例:

select t.number,
       t.fee,
       ROW_NUMBER() OVER(PARTITION BY t.device_number 		ORDER BY t.is_this_innet desc, t.innet_date desc) rn
   from BDW.FM_SUBJECT_M_1202_MX_NEW t

case…when…then…else…end

是个条件函数

case 字段 when =条件 then 结果1 else 结果2 end--end代表结尾(不可省略)
--第二种写法:
case when 字段=条件 then 结果1 else 结果2 end

示例:

 case
         when is_innet = '1' then
          '是'
         else
          '否'
       end innet--字段名

 case is_innet
         when = '1' then
          '是'
         else
          '否'
       end innet--字段名

decode()

decode(字段, 条件,结果1,结果2)
decode(字段,条件1,结果1,条件2,结果2,结果3)

示例:

decode(t.innet, '1', '是', '否')
       
decode(t.innet, '1', '是', '0','否','unkonw')
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个人的雨田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值