oracle 数据库SQL开发之单行函数

一、字符函数

字符函数:主要指参数类型是字符型,不同函数返回值可能是字符型数值型

1.字符大小写转换函数

1.lower(列名|表达式):将大写或大小写混合的字符转换成小写
2.upper(列名|表达式) :将小写或大小写混合的字符转换成大写
3.initcap(列名|表达式) :将每个单词的第一个字母转换成大写,其余的字母都转换成小写

2.字符处理函数

1.concat() 连接字符串 相当于 ||;
2.substr() (字符串截取 参数一:目标字符串 ,参数二:开始索引位置 索引从1开始, 参数三:截取的长度);
在这里插入图片描述
3.length() 获得字符串长度;
在这里插入图片描述
4.instr() 查找子串 参数一:目标字符串,参数二:要查找子串,参数三:开始查找索引的位置 参数四:第N次出现的位置 参数三四默认为1 如果不存在该字符串 返回值0;
5.lpad() 左填充 参数一:目标字符串、 参数二:整个字符串长度、 参数三:填充的字符;
6.rpad() 右填充 参数一:目标字符串、 参数二:整个字符串长度、 参数三:填充的字符;
在这里插入图片描述
7.trim() 去除首尾字符串,默认去除首空格
在这里插入图片描述
8.replace (s1,s2,s3) 把s1中的s2替换成s3

二、数值函数

1.round() 四舍五入 参数二n;如果是正数就精确到小数点后n位,;如果是负数就精确到小数点前n+1位,n=0 时,个位
在这里插入图片描述 2.trunc(数值,参数n) 截取 不管大不大于都去掉
3.mod() 取模(取余) mod(m,n) m%n

三、日期函数

常用日期函数
1.sysdate:返回系统当前日期 默认相减为天数
2.months_between:返回两个日期类型数据之间间隔的自然月数
3.add_months:返回指定日期加上相应的月数后的日期
4.next_day(某一日期,‘星期三’):返回某一日期的下一个指定日期 如:找下一个周三的日期
5.last_day(某一日期):返回指定日期当月最后一天的日期
6.round(date[,‘fmt’])将date按照fmt指定的格式进行四舍五入,fmt为可选项,如果没有指定fmt,则默认为DD,将date四舍五入为最近的天。
在这里插入图片描述
格式码:世纪CC,年YY,月MM,日DD,小时HH24,分MI,秒SS

7.trunc(日期,‘精确到哪’) 将date按照fmt指定的格式进行截断,fmt为可选项,如果没有指定fmt,则默认为‘DD’,将date截取为最近的天。

下面列子sysdate(当前月份是10月下旬)
round函数中(四舍五入特性)与trunc的区别以及对应注意的
在这里插入图片描述

三、转换函数

数据类型转换
1.隐式转换
在这里插入图片描述
2.显式转换
-to_number()
-to_char() 用于日期转字符 和 数值转字符
-to_date(’ 原来格式’,’ 想要格式’) 转换为日期型
在这里插入图片描述
在这里插入图片描述

四、通用函数

– 与空值(NULL)相关的一些函数,完成对空值(NULL)的一些操作。
expr1 ,expr2 ,expr3 都是同类型才能使用该函数
主要包括以下函数:
nvl()
– 语法:nvl (expr1,expr2) 如:nvl(comm,0)
– 如果expr1不是null,返回expr1,否则返回expr2
nvl2()
nvl2函数
– 语法:nvl2(expr1,expr2,expr3) 如: nvl(comm,comm,0)
– 如果expr1不是null,返回expr2,否则返回expr3
nullif()
– 语法: nullif(expr1,expr2)
– 比较两个表达式,如果相等,返回null,否则,返回第一个表达式

五、条件处理函数

case表达式(类似java语言switch - case结构)
示例

select deptno,case deptno
        when 10 then '开发部'
            when 20 then '销售部'
                else '无'
                end 部门名称,from emp;
select sal;

例子:在员工表中查询出员工的工资,并计算应交税款:如果工资小于1000,税率为0,如果工资大于等于1000并小于2000,税率为10%,如果工资大于等于2000并小于3000,税率为15%,如果工资大于等于3000,税率为20%。

case when sal < 1000 then 0
            when sal >= 1000 and sal<2000 then  sal*0.1
              when sal>=2000 and sal<3000 then  sal*0.15
                when sal>=3000 then sal*0.2
                else null
                  end 税款
    from emp;

decode()
示例

select deptno,decode(10,'开发部',20,'销售部','无') 部门名称 from emp;
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值