返回顶部
首页 > 资讯 > 数据库 >Oracle系列:(12)多行函数
  • 852
分享到

Oracle系列:(12)多行函数

2024-04-02 19:04:59 852人浏览 泡泡鱼
摘要

函数:oracle服务器先事写好的一段具有一定功能的程序片段,内置于oracle服务器,供用户调用 单行函数:输入一个参数,输出一个结果,例如:upper('baidu.com')->BAI



函数:oracle服务器先事写好的一段具有一定功能的程序片段,内置于oracle服务器,供用户调用 

单行函数:输入一个参数,输出一个结果,例如:upper('baidu.com')->BAIDU.COM

多行函数:输入多个参数,或者是内部扫描多次,输出一个结果,例如:count(*)->14


统计emp表中员工总人数

select count(*) from emp;

*号适用于表字段较少的情况下,如果字段较多,扫描时间多,效率低,项目中提倡使用某一个非null唯一的字段,通常是主键 


统计公司有多少个不重复的部门

select count(distinct deptno) from emp;

Oracle系列:(12)多行函数


统计有佣金的员工人数

select count(comm) from emp;

注意:今天讲的这些多个行函数,不统计NULL值

Oracle系列:(12)多行函数


员工总工资,平均工资,四舍五入,保留小数点后0位

select sum(sal) "总工资",round(avg(sal),0) "平均工资"
from emp;

Oracle系列:(12)多行函数


查询员工表中最高工资,最低工资

select max(sal) "最高工资",min(sal) "最低工资"
from emp;



入职最早,入职最晚员工

select max(hiredate) "最晚入职时间",min(hiredate) "最早入职时间"
from emp;


多行函数:count/sum/avg/max/min


按部门求出该部门平均工资,且平均工资取整数,采用截断

select deptno "部门编号",trunc(avg(sal),0) "部门平均工资"
from emp
group by deptno;

Oracle系列:(12)多行函数


(继续)查询部门平均工资大于2000元的部门

select deptno "部门编号",trunc(avg(sal),0) "部门平均工资"
from emp
group by deptno
having trunc(avg(sal),0) > 2000;

Oracle系列:(12)多行函数


(继续)按部门平均工资降序排列

select deptno "部门编号",trunc(avg(sal),0) "部门平均工资"
from emp
group by deptno
having trunc(avg(sal),0) > 2000
order by 2 desc;

Oracle系列:(12)多行函数


除10号部门外,查询部门平均工资大于2000元的部门,方式一【having deptno<>10】

select deptno,avg(sal)
from emp
group by deptno
having deptno<>10;


除10号部门外,查询部门平均工资大于2000元的部门,方式二【where deptno<>10】【推荐】

select deptno,avg(sal)
from emp
where deptno<>10
group by deptno;



显示部门平均工资的最大值

select max(avg(sal)) "部门平均工资的最大值"
from emp
group by deptno;

Oracle系列:(12)多行函数


思考:显示部门平均工资的最大值和该部门编号?

select max(avg(sal)) "部门平均工资的最大值",deptno "部门编号"

from emp

group by deptno;

错误



group by 子句的细节:

1)在select子句中出现的非多行函数的所有列,【必须】出现在group by子句中

2)在group by子句中出现的所有列,【可出现、可不现】在select子句中


where和having的区别:

where:

1)行过滤器

2)针对原始的记录

3)跟在from后面

4)where可省

5)先执行


having:

1)组过滤器

2)针对分组后的记录

3)跟在group by后面

4)having可省

5)后执行


oracle中综合语法:

1)select子句-----必须

2)from子句-------必须,不知写什么表了,就写dual

3)where子句------可选

4)group by子句---可选

5)having子句-----可选

6)order by 子句--可选,如果出现列名,别名,表达式,字段






您可能感兴趣的文档:

--结束END--

本文标题: Oracle系列:(12)多行函数

本文链接: https://www.lsjlt.com/news/48573.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle系列:(12)多行函数
    函数:oracle服务器先事写好的一段具有一定功能的程序片段,内置于oracle服务器,供用户调用 单行函数:输入一个参数,输出一个结果,例如:upper('baidu.com')->BAI...
    99+
    2024-04-02
  • Oracle系列:(8)单行函数
    单行函数:只有一个参数输入,只有一个结果输出多行函数或分组函数:可有多个参数输入,只有一个结果输出 测试lower/upper/initcap函数,使用dual哑表select low...
    99+
    2024-04-02
  • oracle 利用函数实现多行一列数据合并效果
     CREATE OR REPLACE FUNCTION GetGiftsName (rid  in number)//rid 穿的参数    RET...
    99+
    2024-04-02
  • oracle中多列转行
    方式一 : 通过wm_concat函数,该函数在10g可以使用,11g 中不兼容,12g中去掉了该函数, ,返回类型为varchar      &nb...
    99+
    2024-04-02
  • oracle多行转一行多列怎么实现
    在 Oracle 中将多行数据转换为一行多列可以使用 LISTAGG 函数或者 PIVOT 操作。 使用 LISTAGG 函数: ...
    99+
    2024-04-17
    oracle
  • Oracle系列:(11)通用函数和条件判断函数
    使用NVL(a,b)通用函数,统计员工年收入,NVL()作用于任何类型,即(number/varchar2/date)通用函数:参数类型可以是number或varchar2或date类型select...
    99+
    2024-04-02
  • oracle 函数学习 Oracle10g学习系列(7)
    Oracle函数有字符函数、数学函数、日期函数和转换函数。我只了解了字符函数和数学函数。一、字符函数:lower(char)  将字符串转化为小写的格式SQL> select lo...
    99+
    2024-04-02
  • oracle多行转多列怎么实现
    在Oracle中,可以使用PIVOT函数将多行数据转换为多列数据。以下是一个示例: 假设有一个名为sales的表,包含以下数据: ...
    99+
    2024-04-22
    oracle
  • PIVOT:行转列函数
    PIVOT函数,行转列 PIVOT函数的格式如下: PIVOT(<聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],...
    99+
    2024-04-02
  • Mysql行转列函数
    group_concat() 例: select oid from Test;  select group_concat(oid) from Test; 来源地址:https://blog.csd...
    99+
    2023-09-02
    mysql sql mybatis
  • Oracle函数-单行函数-字符单行函数
    函数的分类=========================================================单行函数:一个input对应一个output,input和output存在一一对应...
    99+
    2024-04-02
  • Oracle系列:(13)多表查询
    多表查询,包括等值连接、非等值连接、外连接、自连接。内连接,包括等值连接 和 非等值连接。员工表emp和部门表dept的笛卡尔集(笛卡尔集表=列数之和,行数之积,笛卡尔集表内中有些数据是不符合要求的)sel...
    99+
    2024-04-02
  • oracle中怎么用unpivot函数实现列转行
    在Oracle中,可以使用UNPIVOT函数将多列转换为单列。以下是一个示例,假设有一个包含学生姓名、数学成绩和英语成绩的表格: C...
    99+
    2024-04-09
    oracle unpivot
  • 【Python系列】eval 函数
    文章目录 1. 基本概念2. 使用举例3. eval 函数运用—— 计算器4. 不要滥用 eval() 1. 基本概念 eval() 是 python 中功能非常强大的一个函数将字符串当成...
    99+
    2023-09-06
    其他
  • mysql行列转换函数
    摘要: mysql行列转换函数提供方法在行和列之间转换数据,用于数据分析和报表生成。其主要函数包括:pivot: 将行数据转换为列数据,语法:pivot ( sum(value_to_s...
    99+
    2024-08-01
    mysql
  • Oracle系列:(29)存储过程和存储函数
    1、存储过程【procedure】什么是存储过程?事先运用oracle语法写好的一段具有业务功能的程序片段,长期保存在oracle服务器中,供oracle客户端(例如,sqlplus)和程序语言远程访问,类...
    99+
    2024-04-02
  • oracle怎么将多列拼成一行
    你可以使用Oracle中的LISTAGG函数来将多列拼成一行。这个函数可以将多个列的值合并成一个字符串,并且可以指定分隔符。 例如,...
    99+
    2024-03-06
    oracle
  • Python之函数系列(一)
    每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外函数的主要作用有哪些呢?1、将程序的功能进行模块化,功能模块清晰2、减少重复代码的工作量3、便于阅读及维护、调试等一、函数的结束及返回值# -*- coding:...
    99+
    2023-01-31
    函数 系列 Python
  • 列转行函数使用SQL
    select down.downparaversionid || '|' || e.unionno,       down.downparaver...
    99+
    2024-04-02
  • Oracle单行函数之字符函数
    本次主要总结了以下字符函数的作用及使用方法:函 数说 明ASCII返回对应字符的十进制值CHR给出十进制返回字符CONCAT拼接两个字符串,与 || 相同INITCAT将字符串的第一个字母变为大写INSTR...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作