SQL

1 查询相差小时数

/* oracle 计算相差小时数*/
select ceil((to_date('2019-05-03 10:00:00', 'yyyy-mm-dd hh24-mi-ss') - to_date('2019-05-03 10:00:00', 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小时数 from dual;

2 ORACLE 偏移分析函数 lag()与lead() 

/*ORACLE 偏移分析函数 lag()与lead() */
SELECT G.*, lag(工资,1,'example') OVER(order by 部门) 偏移后工资
    from ( select '张三' 人员,'财务' 部门, '5000' 工资  from dual
          union 
          select '李四','财务', '5200'  from dual
          union 
          select '王五','人事', '4000' from dual
          union 
          select '刘二','研发', '6500' from dual
          union 
          select '陈一','研发', '6500' from dual
          union 
          select '赵六','研发', '7000' from dual) G 

3 Oracle聚合函数 rank()

/* oracle聚合函数 rank*/
with t1 as
          (select '张三' 人员, '财务' 部门, '5000' 工资
             from dual
           union
           select '李四', '财务', '5200'
             from dual
           union
           select '王五', '人事', '4000'
             from dual
           union
           select '刘二', '研发', '6500'
             from dual
           union
           select '陈一', '研发', '6600'
             from dual
           union
           select '赵六', '研发', '7000' from dual)
         
select * from (
    SELECT t1.*, rank() OVER(PARTITION BY 部门 ORDER BY 工资) rank FROM t1 
) where rank=1

 4 oracle decode

/* oracle decode */
with t2 as(
select 'zhangsan' ename, 15000 sal
          from dual
        union
        select 'lisi', 9000
          from dual
        union
        select 'wangwu', 4000 from dual
)


SELECT t2.*,
       DECODE(SIGN(t2.sal - 10000),
              1,
              '高薪',
              0,
              '高薪',
              -1,
              DECODE(SIGN(t2.sal - 5000), 1, '中等', 0, '中等', -1, '低薪')) gongzi
from t2;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值