Oracle的常用函数

1、decode的用法:

decode(条件,值1,返回值1,值2,返回值2,值n……,返回值n,缺省值)
例如:

select decode(b.id,2,'齐天大圣',3,'哈哈',null) from test2 b ;

2、replace的用法:

replace(‘abcd’,‘bc’,‘哈哈’)
例如:

select replace(t.name,'齐天','hahh')||'哇' "替换后" from TEST2 t where id=1;

3、concat的用法:

concat是拼接函数,与||的用法有点类似,但是两者有不同的地方,“||”可以自定义连接的字符,而concat不行
例如:

select concat(c.name ,c.age) from test2 c;
select concat(c.name ,c.age)||'hah' from test2 c;

4、top的用法:

并非所有的数据库都支持top函数

sql server:

select top number|percent 列名 from 表名;
SELECT TOP 2 * FROM Persons;
SELECT TOP 50 PERCENT * FROM Persons;

Oracle的用法:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number
--例如:
SELECT *
FROM Persons
WHERE ROWNUM <= 5

MySQL的用法:

SELECT column_name(s)
FROM table_name
LIMIT number
--例如:
SELECT *
FROM Persons
LIMIT 5

5、nvl函数的用法:

NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

SQL> select ename,NVL(comm, -1) from emp;

6、nvl2函数的用法:

NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值

SQL> select ename,NVL2(comm,-1,1) from emp;

7、round函数的使用:

负数表示从整数位(小数点的左边->左边👈)开始四舍五入;
正数表示保留几位小数(小数点的右边->右边👉);
0表示四舍五入到最接近原来数值的数(如:25.36——25,25.56——26)
在这里插入图片描述
在这里插入图片描述

8、substr:

select substr('abcd',1,3) -- 结果是abc

9、CONCAT_WS(separator,str1,str2,…)

是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

 select concat_ws(',','11','22','33');    11,22,33

10、trunc()函数

1.TRUNC()函数处理日期

语法格式:TRUNC(date[,fmt])

其中:date 一个日期值;fmt 日期格式。

示例:

select trunc(sysdate) from dual;–2021/9/22,返回当前时间
select trunc(sysdate,‘yy’) from dual;–2021/1/1,返回当年第一天
select trunc(sysdate,‘mm’) from dual;–2021/9/1,返回当月的第一天
select trunc(sysdate,‘d’) from dual;–2021/9/19,返回当前星期的第一天,即星期天
select trunc(sysdate,‘dd’) from dual;–2021/9/22,返回当前日期,今天是2021/9/22
select trunc(sysdate ,‘HH24’) from dual;–2021/9/22 14:00:00,返回本小时的开始时间
select trunc(sysdate ,‘MI’) from dual;–2021/9/22 14:54:00,返回本分钟的开始时间

2.TRUNC()函数处理number型数字

语法格式:TRUNC(number[,decimals])

其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。

注意:截取时并不对数据进行四舍五入。

示例:

select trunc(123.567,2) from dual;--123.56,将小数点右边指定位数后面的截去;
select trunc(123.567,-2) from dual;--100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;
select trunc(123.567) from dual;--123,默认截去小数点后面的部分;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值