0

0

Oracle函数学习笔记分享

php中文网

php中文网

发布时间:2016-06-07 16:51:16

|

1371人浏览过

|

来源于php中文网

原创

1. Oracle单行函数1.1 Oracle字符函数LOWER 使字符串小写;select LOWER(#39;HeLp#39;) from dual ---gt;helpUPPER 使字符串大

1. oracle单行函数

1.1 oracle字符函数

lower 使字符串小写;
select lower('help') from dual --->help

upper 使字符串大写;
select upper('help') from dual --->help

initcap 使字符串的第一个字母大写,其它为小写
select initcap('help') from dual --->help

length 返回表达式中的字符串长度
select length('help') from dual ---->4

concat 将值连接到一起(,对于此函数,只能使用2个参数)
select concat('hello', 'world') from dual --->helloworld

substr 抽取确定长度的字符串
select substr('helloworld',1,5) from dual ---->hello

instr 查找指定字符的数字位置
select instr('helloworld', 'w') from dual --->6

lpad 按右对齐填充字符串
select lpad(salary,10,'*') from dual --->*****24000

rpad 按左对齐填充字符串
select rpad(salary, 10, '*') from dual --->24000*****

trim(leading|trailing|both,trim_character from trim_source) 从字符串中截去头部或者尾部的字符(或者头尾都截掉)(如果trim_character或trim_source是一个字符型文字值,则必须将它包含在单引号之内。)
select trim('h' from 'helloworld') from dual --->elloworld

replace(text,search_string,replacement_string) 搜索字符串的文本表达式,如果找到,用指定的替代字符串替换它。
select replace('helloworld','hello','hi') from dual --->hiworld

1.2数字函数

round 将值四舍五入到指定的位数
round(45.926, 2) ---->45.93

trunc 将值截断到指定的小数位(不舍入)
trunc(45.926, 2) ---->45.92

mod 返回除法运算的余数
mod(1600, 300) --->100

1.3 日期函数

在oracle中,日期是以数字的形式存储的,故可以直接对日期类型的数据进行+-*/等运算。

months_between 两个日期之间的月数,结果以月为单位
months_between(date1, date2)

add_months 将日历月份添加到日期中
add_months(date, n) n为月数

next_day 指定日期的下一个月
next_day(date, 'char') char可以是星期,月数

last_day 月份的最后一天
last_day(date)

round 四舍五入日期
round(date[, 'fmt'])

设置日期格式:alter session set nls_date_format='yyyy-mm-dd:hh24:mi:ss'

trunc 截断日期
trunc(date[, 'fmt'])

1.4 转换函数

to_char(number|date,'[fmt]',[nlsparams])将数字和日期值转换为格式样式为fmt的varchar2字符串。
nlsparams参数指定返回的月份名称、日期名称以及缩写所用的语言。

to_number(char,'[fmt]',[nlsparams])将包含数字的字符串转换为格式样式为fmt指定的格式表示的数字。
nlsparams参数与to_char()相同,是进行数字转换。

to_date(char,'[fmt]',[nlsparams])将代表日期的字符串按照指定的fmt转换为日期值。如果省略了fmt,则格式为dd-mon-yy。
nslparams参数在此函数中的用途是进行日期转换。

1.5嵌套函数

nvl (expr1, expr2) 将空值转换为实际的值。

nvl2 (expr1, expr2, expr3) 如果expr1为非空,返回expr2。如果expr1为空值,将返回expr3。expr1可以是任何数据类型。

nullif (expr1, expr2) 比较2个值,如相等,返回空值,否则返回第一个表达式。

coalesce (expr1, expr2, ..., exprn) 返回表达式中第一个非空值。

1.6 条件表达式

case表达式(符合ansisql)
通过执行if-then-else语句的任务,可以简化条件查询
case expr when comparison_expr1 then return_expr1
[when comparison_expr2 then return_expr2
when comparison_exprn then return_exprn
else else_expr]
end

decode函数(oracle专用语法)
通过执行if-then-else语句的任务,可以简化条件查询
decode(col|expression, search1, result1
[, search2, result2,...,]
[, default])


2、分组函数

使用分组函数的准则:
distinct 使函数只考虑非重复值;all使之考虑包括重复值在内的所有值。默认值为all,因此它不需
要专门指定。
带有expr参数的函数的数据类型可以是char、varchar2、number或者date。
所有分组函数都忽略空值。要用一个值代替空值,可以使用nvl、nvl2或者coalesce函数。
在使用group by 字句时,oracle服务器隐式地按照升序对结构集进行排序。要改写此默认顺序,可以
在order by 字句中使用desc。

2.1 avg([distinct|all]n) n的平均值,忽略空值

2.2 count({*|[distinct|all]expr}) 行数,其中expr用来判断非空值(使用*计算所有选定行,包括重
复行和带有空值的行)

2.3 max([distinct|all]expr) expr的最大值,,忽略空值

2.4 min([distinct|all]expr) expr的最小值,忽略空值
注:可以对任何数据类型使用min 和 max 函数

2.5 stddev([distinct|all]x) n的标准偏差,忽略空值

2.6 sum([distinct|all]n) n的总计值,忽略空值

2.7 variance([distinct|all]x) n的方差,忽略空值
例1:
select avg(salary), max(salary),
min(salary), sum(salary)
from employees
where job_id like '%rep%';
例2:
select min(hire_date), max(hire_date)
from employees;
例3:
select count(*)
from employees
where department_id = 50;

2.8 group by 字句
语法:group by group_by_expression group_by_expression--->指定列,这些列的值是对行进行分组的基础。
作用:通过使用group by字句将表中的行分成更小的组。也可以对多个列使用group by子句。
例4:
select department_id dept_id, job_id, sum(salary)
from employees
group by department_id, job_id ;
注意:
a、 select 列表中不是聚合函数的任何列或表达式都必须在group by子句中。
b、 不能使用 where 子句来限制组;
c、 可以使用having子句来限制组;
d、 不能在 where 子句中使用分组函数。

2.9 嵌套分组函数
分组函数可以嵌套两层。
例5:
select max(avg(salary))
from employees
group by department_id;

linux

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

0

2026.02.03

python源码大全
python源码大全

本专题整合了python源码相关内容合集,阅读专题下面的文章了解更多详细内容。

1

2026.02.03

python 解包
python 解包

本专题整合了python解包的概念、操作方法等等内容,阅读专题下面的文章了解更多详细教程。

2

2026.02.03

Python 序列化
Python 序列化

本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

12

2026.02.02

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

206

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

102

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

15

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

16

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

9

2026.02.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.7万人学习

Java 教程
Java 教程

共578课时 | 56.4万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号