Oracle 集锦

1 decode 数据转换
例如:在表中 性别存储的是 0 或者 1 在 在展现层需要展现出男或者女,可作如下操作
select decode(sex,'0','男','1','女') as sex from users ;
查询后返回 男或者女,此函数只适用于 oracle
2 COALESCE 返回其参数中第一个非空表达式
参数:任何类型的表达式,所有表达式必须是相同类型,如果所有的参数都为null,则返回 null
例如:
select coalesce('','333') comm from dual ;
查询的结果是:333
3 STDDEV(distinct|all)
求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差
例如:
SQL> select stddev(sal) from scott.emp;

STDDEV(SAL)
-----------
1182.5032

SQL> select stddev(distinct sal) from scott.emp;

STDDEV(DISTINCTSAL)
-------------------
1229.951
4 minus
minus运算的主要功能是: 在进行两个表格或者两个查询结果的时候 ,
返回在第一个表格/查询结果中与第二个表格/查询结果不相同的记录
使用时:两个表里面的字段类型最好一致
例如: A 表
ID Name
1 qq
2 tt
3 uu
B 表
ID Name
1 qq
2 ta
3 uu
那么
(SELECT * FROM A)
MINUS
(SELECT * FROM B)
的结果是:
ID Name
1 qq
3 uu
5 分析函数over
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
例如:
表 test
classNo name age
1 zhang1 1
1 zhang1 2
2 zhang1 3
2 zhang1 4
2 zhang1 5
3 zhang1 6
3 zhang1 6
4 zhang1 7

select classNo,name,sum(age)over(partition by classNo) allage from test
得到的结果是:
classNo name allage
1 zhang1 3
1 zhang1 3
2 zhang1 12
2 zhang1 12
2 zhang1 12
3 zhang1 12
3 zhang1 12
4 zhang1 7

group by是对检索结果的保留行进行单纯分组,一般总爱和聚合函数一块用例如AVG(),COUNT(),max(),main()等一块用。
partition by虽然也具有分组功能,但同时也具有其他的功能。它属于oracle的分析用函数。
sum() over (PARTITION BY ...) 是一个分析函数。他执行的效果跟普通的sum ...group by ...不一样,它计算组中表达式的累积和,而不是简单的和。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值