Oracle单行函数学习

SQL函数有单行函数和多行函数,我们这里介绍的为单行函数

单行函数:

  1. 操作数据对象
  2. 接受参数并返回一个结果
  3. 可转换数据类型,还能嵌套
  4. 参数可以是一个列或一个值
  5. 特征是:只对一行进行交换,每行返回一个结果。

我们将用Oracle提供的SQL Plus 进行示例,登录的用户为Oracle提供的有基础表的scott用户

【1】字符型单行函数

lower():

把字符串转为小写

我们使用dual不存在的表作为占位,只用于演示函数效果,不用于数据查询

将lower()中的大写字符串转为小写------"hshs"


upper():

把字符串转为大写

将upper()中的小写字符串转为大写------"HSHS"


inticap():

把字符串首字母转为大写

将inticap()中的字符串首字母转为大写------"Apple"


concat():

连接两个字符或两个列

也可以连接字段

当然也可以把字符串和字段连接起来


substr():

截取字符串

3:表示从某个位置开始截取,上图是从第三个位置开始

2:表示截取多长的字符串,上图是截取两个


length():

计算字符串的字符个数,空格也包含

将空格包含在内,总长度为7


instr():

在字符串中搜索子字符串的位置

搜索字符串中"cd"的位置,位置为3


replace():

把字符串中的某个子字符串替换成另一个子字符串

将字符串中的"cd"替换为"dc"


【2】数字型单行函数

round(num,n):

对num指定n位小数,会四舍五入

对数字精确到2位小数,且四舍五入


trunc(num,n):

对num指定n位小数,不四舍五入

对数字精确到2为小数,且不四舍五入


mod():

求两个数相除的余数

5除以3,余数为2


【3】日期时间函数

sysdate:

获取系统当前时间,格式为日期-月份-年份,年份仅显示后两位,如2025年显示25

也可以和一个数字相加减,这个数字代表天数

在今天的日期+1天,如果输入的是小时数,则除以24

因为SQL Plus暂不显示时/分/秒,我们使用SQL Developer演示

sql 复制代码
select sysdate+20/24 from dual;

效果为下图**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**:


计算两个日期的差值:

使用to_date()输入需要计算差值的日期,,格式为日期-月份-年份,输入月份时需要先查看系统的日期格式,下面我们先用英文月份进行演示

报出错误:无效的月份,意味着我们系统的日期格式并不是英文,接下来我们来查看当前会话自己系统的日期格式是什么,使用userenv('lang')

查询出的结果为"ZHS",意思是当前会话系统的日期格式是中文,那我们修改写法,将月份替换为中文

结果为2026/2/20距离2026/4/1多少天,相差约40天,当然也可将sysdate写在前面,to_date写在后面


【4】空值和空值处理函数

什么是空值:

在数据库中没有定义,没有确定性意义的一类值,用 is null 或 is not null 判断


nvl(num,num1):

如果num为空值,则返回num1,否则返回num

下面使用有数据的表emp进行演示,下方是表的结构和数据

查询ename,job,以及comm列,对comm列使用nvl()函数,如果有空值,返回0,不为空就返回comm本身的值,返回的值也可自己定义,下方示例空值返回为0


nvl2(num,num1,num2):

如果num为空值,则返回num2,否则返回num1

依然是使用同nvl()相同的示例,如果comm为空返回0,不为空返回comm本身,同nvl()一样,返回的值也可自定义,下方示例空值返回为0

相关推荐
梁辰兴1 分钟前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh11 分钟前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean13 分钟前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory17 分钟前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
倒流时光三十年41 分钟前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修1 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios1 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql
DB哥讲数据库2 小时前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse
TDengine (老段)2 小时前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
小白勇闯网安圈11 小时前
Django 响应对象、文件上传与类视图
数据库·django·sqlite