热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Oracle:plsql常用函数汇总

1.在sqlplus下,实现中-英字符集转换altersessionsetnls_language'american';altersessionsetnls_l

1.在sqlplus下,实现中-英字符集转换


alter session set nls_language='american';
alter session set nls_language='simplified chinese';

2.运算符

算术运算符:+-*/

连接运算符:||

比较运算符:>,>=,=,!=,<,<=

逻辑运算符:not,and,or

集合运算符:intersect ,union,union all, minus(对应集合的列数和数据类型相同,union不包括重复行,union all包括重复行)

3.日期函数

1)add_months:日期加减日期后的日期

2)last_day:该月最后一天的日期

3)months_between:日期之间的月份

4)next_day(date,char):返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日

5)round:舍入到最接近的日期(round(参数,&#039;day&#039;):day:舍入到最接近的星期日)

6)trunc:截断到最接近的日期

7)greatest:返回值列表的最大值,若是日期,则返回最晚值

8)least:返回值列表的最小值,若是日期,则返回最早值

4.字符函数

1)substr:截取字符串


select substr(&#039;serqewrgret&#039;,1,3)substrs from dual;

2)||,wm_concat(),concat:连接字符

3)decode:选择函数

4)length:计算列中数据的长度

5)replace:替换函数


select replace(&#039;abc&#039;,&#039;b&#039;,&#039;xy&#039;) from dual;

6)ltrim、rtrim、trim:去掉字符串中的空格


select ltrim(&#039; a&#039;) s1, rtrim(&#039;b &#039;) s2, trim(&#039; c &#039;) s3 from dual;

7)去掉前导和后缀


select trim(leading 9 from 9998767999) s1,
trim(trailing 9 from 9998767999) s2,
trim(9 from 9998767999) s3
from dual;

8)lower:小写,upper:转大写,initcap:首字母转大写


select lower(&#039;hha&#039;) s1, upper(&#039;hhei&#039;) s2, initcap(&#039;hhehe&#039;) s3 from dual;

9)translate:替换掉需要替换的字符,一个替换一个……


select translate(&#039;abc&#039;,&#039;b&#039;,&#039;a3&#039;) from dual;

10)lpad(左填充),rpad(右填充):填充


select lpad(&#039;a&#039;,6,&#039;!&#039;) s1, rpad(&#039;b&#039;,6,&#039;=&#039;) s2 from dual;

11)nvl(x1,x2):x1为空,则显示为x2的值,否则就是x1

12)nvl2(x,x1,x2):x不为空,则显示为x1,否则显示为x2

13)nullif(x1,x2):若x1的值与x2的值相等,则返回为空,否则返回x1

14)coalesce(表达式1,表达式2,表达式3,表达式4,……,表达式n):返回第一个不为空的表达式


select ename,coalesce(sal,100),sal,comm from emp;

5.数字函数

1)保留小数位:round四舍五入,trunc直接截断


select round(874.96,2) s1,trunc(874.9412,2) s2 from dual;

2)取整:ceil向上取整,floor向下取整


select ceil(2087.2) s1, floor(2087.2) s2 from dual;

3)power:取幂,sqrt:平方根


select power(3,2) s1,sqrt(9) s2 from dual;

4)求余


select mod(1,2) from dual;

5)sign:返回值的符号(正数返回为1,负数为-1)


select sign(-30),sign(30) from dual;

6.分组函数

min,max,avg,count,sum

1)group by 和having

例:部门56的最高工资,最低工资,平均工资,总人数,有工作的人数,工种数量及工资总和


select deptno,
max(ename),
max(sal),
min(ename),
min(sal),
avg(sal),
count(*),
count(job),
count(distinct(job)),
sum(sal)
from emp
group by deptno
having deptno = 56;

2)stddev:返回一组值的标准偏差


select x,stddev(y) from xx group by x;

3)variance:返回一组值的方差


select x,variance(y) from xx group by x;

4)rollup:按分组的第一个列进行统计和最后的小计


select x,y,sum(z) from emp group by x,y; select x,y,sum(z) from emp group by rollup(x,y);

5)cube:按分组的所有的列进行统计和最后的小计


select x,y,sum(z) from emp group by cube(x,y);

7.聚合函数/排序函数+over(partition by column order by column)

常见的有:


row_number() over(partition by … order by …)
rank() over(partition by … order by …)
dense_rank() over(partition by … order by …)
count() over(partition by … order by …)
max() over(partition by … order by …)
min() over(partition by … order by …)
sum() over(partition by … order by …)
avg() over(partition by … order by …)
first_value() over(partition by … order by …)
last_value() over(partition by … order by …)
lag() over(partition by … order by …)
lead() over(partition by … order by …)

8.其他

1)user:返回登录的用户名


select user from dual;

2)vsize:返回表达式所需的字节数


select vsize(&#039;i am xx;&#039;) from dual; --8

推荐阅读
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 本文探讨了在Oracle数据库中,动态SQL语句的执行及其对事务管理的影响,特别是关于回滚操作的有效性。重点讨论了一个具体场景:将预警短信从当前表迁移到历史表时遇到的字段长度不匹配问题及相应的异常处理。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中结合使用 UPDATE 和 SELECT 语句,以实现复杂的数据更新操作。首先准备测试环境和数据表,然后通过嵌套查询的方式从其他表中获取需要更新的值,最后执行更新操作并验证结果。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文详细介绍了在 MySQL、SQL Server 和 Oracle 数据库中如何使用分组和排序功能。涵盖了聚集函数的应用、HAVING 子句的作用以及特定数据库中的独特方法,如 SQL Server 的 ROW_NUMBER() 函数和 Oracle 的相关特性。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • Oracle中NULL、空字符串和空格的处理与区别
    本文探讨了在Oracle数据库中使用NULL、空字符串('')和空格('_')时可能遇到的问题及解决方案。重点解释了它们之间的区别,以及在查询和函数中的行为。 ... [详细]
  • Oracle 数据导出为 SQL 脚本的详细步骤
    本文介绍如何使用 PL/SQL Developer 工具将 Oracle 数据库中的数据导出为 SQL 脚本,包括详细的步骤和注意事项。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
author-avatar
fionafongkaian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有