oracle条件表达式与分组

Posted gj-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle条件表达式与分组相关的知识,希望对你有一定的参考价值。

前言

表中的数据

技术分享图片

 

技术分享图片

 

1条件表达式

1.1数据库通用条件表达式

语法:

 case 列

       when 列值1 then  显示值1

       when 列值2 then  显示值2

       when 列值3 then  显示值3

     else

       默认值

     end  

例子:

表的数据

技术分享图片

 

SELECT deptno ,case deptno
  WHEN 10 THEN ‘十‘
  WHEN 20 THEN ‘二十‘
  WHEN 30 THEN ‘三十‘
  WHEN 40 THEN ‘四十‘
  ELSE ‘零‘
  END "中文数值"
FROM dept;

技术分享图片

 

 

1.2oracle特有条件表达式

  decode(列,列值1,显示值1,列值2,显示值2,默认值)  

SELECT deptno,
DECODE(deptno,10,‘十‘,20,‘二十‘,30,‘三十‘,40,‘四十‘,‘五十‘)
FROM emp;

技术分享图片

 

2.分组

分组关键字group by ,过滤条件having

 

SELECT deptno, COUNT(ename) FROM emp GROUP BY deptno

 技术分享图片

加上having过滤条件

SELECT deptno, COUNT(ename) FROM emp GROUP BY deptno HAVING deptno >10;

技术分享图片

 

where和having的区别:

where后面不能接聚合函数,可以接单行函数

having实在group by之后执行,可以接聚合函数

 

以上是关于oracle条件表达式与分组的主要内容,如果未能解决你的问题,请参考以下文章

Day04- -e Oracle

动态创建匿名对象利用表达式树动态构建分组条件

动态创建匿名对象利用表达式树动态构建分组条件

正则表达式——字符类分支条件分组

Oracle之查询详解

ACCESS 怎么样在查询中满足一个条件而显示其余与之相应的字段信息