博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle学习笔记(decode,Having)
阅读量:4228 次
发布时间:2019-05-26

本文共 1476 字,大约阅读时间需要 4 分钟。

1.oracle中decode函数的使用
--创建表
Create Table stu_score(
       stu_name varchar2(50),
       subject Varchar2(50),
       score Number

);

--测试数据
Insert Into stu_score Values('张三','语文',30);
Insert Into stu_score Values('张三','数学',40);
Insert Into stu_score Values('张三','英语',50);
Insert Into stu_score Values('李四','语文',60);
Insert Into stu_score Values('李四','数学',80);
Insert Into stu_score Values('李四','英语',90);
Insert Into stu_score Values('王五','语文',90);
Insert Into stu_score Values('王五','数学',100);
--普通查询的效果
Select * From stu_score
--使用decode函数后的效果
Select stu_name, sum(decode(subject,'语文',score))语文,
                 sum(decode(subject,'数学',score))数学,
                 sum(decode(subject,'英语',score))英语
  From stu_score Group By stu_name;  

--统计有两门及两门以上不及格的同学及平均分,不及格科目。(主要是Having的使用)

Select stu_name,Avg(score)平均分,Count(Case When score<60 Then 1 End)不及格科目数  From stu_score
Group By stu_name Having Count(Case When score<60 Then 1 End)>=2;
-- 查出每个学生的最擅长的科目,注意:group by是先排序后分组
Select  stu_name, max(score)最高分 From stu_score Group By stu_name; 
Select t.stu_name,t.max_score,s.subject From (Select stu_name, max(score) max_score  From stu_score  Group By stu_name)t,stu_score s Where t.stu_name = s.stu_name And t.max_score = s.score;   

2.Having的使用 
--需要注意说明:当同时含有where子句、group by子句 、having子句及聚集函数时,执行顺序如下:
--执行where子句查找符合条件的数据;
--使用group by子句对数据进行分组;对group by子句形成的组运行聚集函数计算每一组的值;最后用having子句去掉不符合条件的组。
--having子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle。
--having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
--having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。
你可能感兴趣的文章
40行代码带你免费看《海贼王-和之国》篇章
查看>>
搭建炫酷的服务器监控平台
查看>>
垃圾分类:人机搭配,干活不累
查看>>
Nginx
查看>>
Memcached,session共享
查看>>
Tomcat,varnish
查看>>
SVN, 制作RPM包
查看>>
HTML 标签说明
查看>>
CSS 基本语法
查看>>
Nginx 常见异常
查看>>
10.shell基础
查看>>
加密与解密、抓包扫描
查看>>
16.一级目录、历史命令,du,date,zip,快捷方式
查看>>
MySQL的基本管理
查看>>
MySQL 表结构与键值
查看>>
MySQL存储引擎,表记录管理
查看>>
Mysql多表查询语句,授权用户与密码更改
查看>>
MySQL 备份与恢复
查看>>
函数可重入性及编写规范
查看>>
想成为嵌入式程序员应知道的0x10个基本问题
查看>>