SQL函数有单行函数和多行函数我们这里介绍的为单行函数单行函数操作数据对象接受参数并返回一个结果可转换数据类型还能嵌套参数可以是一个列或一个值特征是只对一行进行交换每行返回一个结果。我们将用Oracle提供的SQL Plus进行示例登录的用户为Oracle提供的有基础表的scott用户【1】字符型单行函数lower()把字符串转为小写我们使用dual不存在的表作为占位只用于演示函数效果不用于数据查询将lower()中的大写字符串转为小写——hshsupper()把字符串转为大写将upper()中的小写字符串转为大写——HSHSinticap()把字符串首字母转为大写将inticap()中的字符串首字母转为大写——Appleconcat()连接两个字符或两个列也可以连接字段当然也可以把字符串和字段连接起来substr()截取字符串3表示从某个位置开始截取上图是从第三个位置开始2表示截取多长的字符串上图是截取两个length()计算字符串的字符个数空格也包含将空格包含在内总长度为7instr()在字符串中搜索子字符串的位置搜索字符串中cd的位置位置为3replace()把字符串中的某个子字符串替换成另一个子字符串将字符串中的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演示select sysdate20/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进行演示下方是表的结构和数据查询enamejob以及comm列对comm列使用nvl()函数如果有空值返回0不为空就返回comm本身的值返回的值也可自己定义下方示例空值返回为0nvl2(num,num1,num2)如果num为空值则返回num2否则返回num1依然是使用同nvl()相同的示例如果comm为空返回0不为空返回comm本身同nvl()一样返回的值也可自定义下方示例空值返回为0