单行函数
函数:数据库为用户提供的支持,不是标准的SQL语句,数据库中完成特定的功能操作是通过函数来体现的,因此不同的数据库函数不相同。
单行函数
一、字符函数
1、UPPER():将字符全部大写 SELECT UPPER(EMP) FROM DUAL;
2、LOWER():将字符全部小写 SELECT LOWER(EMP)FROM DUAL;
3、INITCAP():将首字母大写 SELECT INITCAP(EMP)FROM DUAL;
4、REPLACE():替换对应的字符 SELECT REPLACE(EMP,'A','') FROM DUAL;
5、LENGTH():显示字符串的大小 SELECT LENGTH(EMP) FROM DUAL;
6、SUBSTR():截取字符串 SELECT SUBSTR(EMP,1,5)FROM DUAL; 从第一个开始截取五个,包含第一个。SELECT SUBSTR(EMP,2)FROM DUAL;从第二个开始,截取后面的所有
7、ASCII();返回指定字符对应的十进制数字 SELECT ASCII('A')FROM DUAL;
8、CHR():指定对应的十进制数字返回字符 SELECT CHR(97)FROM DUAL;
9、RPAD():向右边补齐指定的字符 SELECT RPAD('ABC',5,'A') FROM DUAL; ABCAA
10、LPAD():向左边补齐指定的字符 SELECT LPAD('ABC',5,B) FROM DUAL; BBABC
11、LTRIM():去除左边的空格
12、RTRIM():去除右边的空格
13、TRIM():去除左右两边的空格
14、INSTR():查询指定的字符返回字符最开始出现的位置,查询时区分大小写,查不到返回0 SELECT INSTR('ABCDE','BC')FROM DUAL 2
二、数值函数
1、ABS():绝对值
2、三角函数(SIN(),ASIN(),COS())
3、对数LOG()、LN()
4、ROUND():指定保留的位数,并对小数进行四舍五入,如果不指定就表示不保留小数 SELECT ROUND(785.652,1) FROM DUAL; 785.7
5、TRUNC():截取小数,如果不指定小数位就表示,截取小数 SELECT TRUNC(785.65) FROM DUAL ; 785
6、MOD():取模,表示整除某个数取模 SELECT MOD(10,3) FROM DUAL; 1
三、日期函数
1、(SYSDATE:精确到秒;SYSTIMESTAMP:精确到毫秒) :表示当前的系统时间 SELECT SYSDATE FROM DUAL;
2、NLS_DATE_FORMAT:通过控制此列控制显示的时间格式
ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh-mi-ss';
SELECT SYSDATE FROM DUAL;
2018-1-15 00:00:00
4、日期公式
4.1 日期-数字=日期
4.2 日期+数字=日期
4.3日期-日期=数字(天数)
5、ADD_MONTHS():指定的日期上面加上指定的月数,求出新的日期 SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL;三个月后面的日期时间 2018-05-24 14:23:28
6、MONTHS_BETWEEN():求出两个日期期间的月数 SELECT MONTHS_BETWEEN(SYSDATE,ADD_MONTHS(SYSDATE,3)) FROM DUAL; 3
7、NEXT_DAY():求出下个星期几的日期,1---7表示星期日到星期六,用其他的可能会因为时期和编码发生错误,通用的是阿拉伯数字 SELECT NEXT_DAY(SYSDATE,7)FROM DUAL;
8、LAST_DAY :求出指定日期的最后一天日期 SELECT LAST_DAY(SYSDATE) FROM DUAL;
9、EXTRACT():时间间隔 SELECT EXTRACT(YEAR FROM SYSTIMESTAMP),EXTRACT(MONTH FROM SYSTIMESTAMP),EXTRACT(DAY FROM SYSTIMESTAMP) FROM DUAL; 2018,1,5
四、转换函数
1、TO_CHAR():将指定的数据按照指定的格式变成字符串 SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh:mi:ss') FROM DUAL;
2、TO_DATE():将指定的字符串按照指定的格式变成DATE SELECT TO_DATE('2018-01-5 14:27:30','yyyy-mm-dd hh:mi:ss') FROM DUAL;
3、TO_NUMBER():将字符串变成数字类型,但是数据库中如果字符串是由数字组成的,会自动的隐式转化为数字类型的 SELECT TO_NUMBER('009')+11 加法计算 from dual 20
五、通用函数
1、NVL():如果判断的列结果是null,返回默认值,如果判断的结果不为null,则显示原值 SELECT NVL(NULL,0) FROM DUAL;0
2、NVL2()如果判断的结果不为null,返回结果1,如果判断的结果为null,返回结果2 SELECT NVL2(NULL,结果1,结果2) FROM DUAL;
3、NULLIF()如果表达式1和表达式2相等返回null,不相等返回1 SELECT NULLIF(1,2) FROM DUAL; 1
4、DECODE() :类似于if语句,判断列的值,得到相对应的结果 SELECT DECODE(EMP,'1','显示1','2','显示2') empFROM DUAL;
5、CASE()类似于case语句 SELECT CASE EMP WHEN '判断1' THEN sal*1.2 WHEN '判断2' THEN sal*1.1 ELSE sal* 1.5 END 新工资;
6、COALESCE() :如果表达式1为null,判断表达式2,如果表达式2为null,判断表达式3,最后结果返回第一个不为空的表达式 SELECT COALESCE('表达式1','表达式2','表达式3') FROM DUAL;