oracle 常用函数
1、trim:去掉字符串两头的空格
select trim(' abc ') from dual;
结果去除两边空格返回 abc。
2、replace:替换字符
select replace('abc','a','b') from dual;
结果将b替换a返回bbc。
3、||:结果拼接展示
select 'i love'||' you' from dual;
结果返回 i love you。
4、last_day:展示本月最后一天
select last_day(sysdate) from dual;
结果返回当前系统时间对应月的最后一天 2020/10/31。
5、upper:将小写字母转换为大写
select upper('ab') from dual;
结果返回 AB。
6、lower:将大写字母转换为小写
select lower('AG') from dual;
结果返回 ag。
7、abs:取绝对值
select abs(-32) from dual;
结果返回 32。
8、ceil:向上取整(向最大整数取)
select ceil(12.3) from dual;
select ceil(-12.3) from dual;
第一个sql结果返回13,第二个sql结果返回-12。
9、floor:向下取整(向最小整数取)
select ceil(12.3) from dual;
select ceil(-12.3) from dual;
第一个sql结果返回12,第二个sql返回结果 -13。
10、to_date:将数字或字符串转化为时间
select to_date('20201231','yyyymmdd') from dual;
结果返回20201231。
11、to_char:将数字或者时间转换为字符串
select to_char(sysdate,'yyyymmdd') from dual;
结果返回20201023。
12、to_number:将字符串转换为数字
select to_number('1231') from dual;
结果返回1231。
13、trunc():
13.1.1、 一个参数{即trunc()括号里只有一个字段、字符串或者数字}的时候处理时间格式,去掉时分秒:
select trunc(sysdate) from dual;
返回结果20201231。
13.1.2、一个参数的时候处理数字格式,只取整数部分:
select trunc(-97.2) from dual;
select trunc(97.6) from dual;
第一个sql返回-97,第二个sql返回97.6。
13.2.1、二个参数{即trunc()括号里有一个字段和具体参数组合、或者字符串和具体参数组合、或者数字和具体参数组合}的时候处理时间格式,获取时间:
select trunc(sysdate,'mm') from dual;
select trunc(sysdate,'yy') from dual;
select trunc(sysdate,'yyyy') from dual;
select trunc(sysdate,'dd') from dual;
select trunc(sysdate,'d') from dual;
第一个sql结果返回本月第一天,第二个和第三个sql结果都是返回本年第一天,第四个sql返回当前年月日,第五个sql返回本周的第一天。
13.2.2、二个参数获取数字格式,从小数点往后截取对应位数,无四舍五入{若第二个参数为负数,则从小数点开始向左前截取(从小数点开始)}:
select trunc(12.356,2) from dual;
select trunc(-156.1,-2) from dual;
第一个sql结果返回12.35,第二个sql结果返回-100。
14、round:
14.1.1、一个参数,四舍五入取整:
select round(-97.6) from dual;
select round(97.6) from dual;
第一个sql结果返回-98,第二个sql结果返回 98。
14.2.1、二个参数,四舍五入截取数据(若第二个参数为负,则从小数点开始往前四舍五入截取)
select round(12.356,2) from dual;
select round(-13.78,1) from dual;
select round(129.45,-1) from dual;
select round(-156.1,-2) from dual;
第一个sql返回结果12.36,第二个sql返回结果-13.8,第三个sql返回结果-130,第四个sql返回结果-200。
15、distinct:去重(尽量少用,影响执行效率)
select distinct 字段1,字段2,字段3. . . from table_name;
结果返回:如果只有一个字段则把该字段内的重复值去重相同值只保留一个,如果是多个字段,则这多个字段的值同时重复(字段a有3个重复的,字段b无重复,则总体两个字段不算重复)才会去重。
16、substr:截取
16.1.1、二个参数:第一个参数是要截取的字符串,第二个参数是截取是从起始位置开始截取、若为正则代表向后截取、若为负则代表倒着截取:
select substr('123456',2) from dual;
select substr('123456',2) from dual;
第一个sql结果返回3456,第二个sql的结果返回1234。
16.2.1、三个参数,第一个参数是要截取的字符串,第二个参数是截取起始位置,第三个参数是截取的位数(长度)
select substr('abcdef',2,3) from dual;
结果返回cde。
17、nvl:空值判断
二个参数,若第一个参数为空,则返回第二个参数:
select (字段1,a) from table_name;
结果返回,如果字段1不为空则返回字段1的值,为空返回a。
18、nvl2:空值判断
三个参数,若第一个参数不为空,则返回第二个参数,否则返回第三个参数:
select nvl2(字段1,a,b) from table_name;
结果返回 如果字段1不为空返回a,为空返回b。
19、decode 函数:
decode函数会查找该字段的值,如果与之对应,则返回预设的结果:
表tab 含有字段a,字段a的值包括 (100,200,300,400,500);
select decode(a,100,1,200,2,300,3,350,4) from tab
结果返回1,2,3没有4,因为预设值和字段里的任意值不对应。
感谢各位的阅读,我愿用最用心的态度为你传达最精确的知识。