1 概要
类 | 名称 | 说明 |
字 符 函 数 |
ASCII(X) | 返回字符X的ASCII码 |
CONCAT(X,Y) | 连接字符串X和Y | |
INSTR(X,STR[,START][,N) | 从X中查找str,可以指定从start开始,也可以指定从n开始 | |
LENGTH(X) | 返回X的长度 | |
LOWER(X) | X转换成小写 | |
UPPER(X) | X转换成大写 | |
LTRIM(X[,TRIM_STR]) | 把X的左边截去trim_str字符串,缺省截去空格 | |
RTRIM(X[,TRIM_STR]) | 把X的右边截去trim_str字符串,缺省截去空格 | |
TRIM([TRIM_STR FROM]X) | 把X的两边截去trim_str字符串,缺省截去空格 | |
REPLACE(X,old,new) | 在X中查找old,并替换成new | |
SUBSTR(X,start[,length]) | 返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾 | |
数 值 函 数 |
ABS(X) | X的绝对值 |
ACOS(X) | X的反余弦 | |
COS(X) | 余弦 | |
CEIL(X) | 大于或等于X的最小值 | |
FLOOR(X) | 小于或等于X的最大值 | |
LOG(X,Y) | X为底Y的对数 | |
MOD(X,Y) | X除以Y的余数 | |
POWER(X,Y) | X的Y次幂 | |
ROUND(X[,Y]) | X在第Y位四舍五入 | |
SQRT(X) | X的平方根 | |
TRUNC(X[,Y]) | X在第Y位截断 | |
日 期 函 数 |
add_months(日期,数字) | 日期+数字(月) |
months_between(日期1,日期2) | 日期1-日期2 | |
next_day(日期,星期数) | 求下一个星期几的具体日期 | |
last_day(日期) | 求指定日期的最后一天的日期 | |
extract(格式 from 数据) | 日期的时间分割,或技术给定两个日期的间隔 | |
转 换 函 数 |
to_char(日期|数字|列,转换格式) | 转换成字符串 |
to_date(字符串|列,转换格式) | 转换成日期 | |
to_number(字符串|列) | 将指定的字符串转换成数字类型 | |
其 他 函 数 |
nvl(数字|列,默认值) | 如果显示数字是NULL的话,则使用默认值 |
nvl2(数字|列,返回结果1,返回结果2) | 如果列不是NULL则返回结果1,如果为空返回2 | |
nullif(表达式1,表达式2) | 比较表达式1,和表达2,的结果是否相等,如果相等返回NULL,如果不相等返回表达式1 | |
decode(列|值,判断值1,显示结果1,判断值2,显示结果2,...,默认值) | 使用DECODE要全部判断,如果没有判断的内容就会显示NULL | |
case 列|数值 when 表达式1 then 显示结果1...else表达式n...end | ||
coalesce(表达式1,表达式2,...表达式n) | (表达1,表达2,。。。。表达n)依次判断,如果表达式1为NULL,则显示表达式2,如果表达式2是NULL,则显示表达式3. | |
统 计 函 数 |
AVG(表达式) | 平均值 |
SUM(表达式) | 求和 | |
MIN(表达式)、MAX(表达式) | 最小值、最大值 | |
COUNT(表达式) | 数据统计 | |
median() | 返回中间值 | |
variance() | 返回方差 | |
stddev() | 返回标准方差 |
2 举例
2.1 字符函数
select upper('dd') from dual
select lower('DD') from dual
select initcap('dd') from dual
select replace('ad','d','a') from dual
select length('dd') from dual
select substr('abcdef',2) from dual
select substr('abcdef',2,2) from dual
select ascii('a') from dual
select chr(97) from dual
select ltrim(' a') from dual
select rtrim('a ') from dual
select length(ltrim(' a')),length(' a') from dual
select rtrim('a ') from dual
select trim(' a ') from dual
select lpad('a',10,'b') from dual
select rpad('a',10,'b') from dual
2.2 数值函数
select round(1.115,2) from dual
select trunc(1.115,2) from dual
select mod(5,3) from dual
2.3.时间函数
select add_months(sysdate,2) from dual
select months_between(sysdate+60,sysdate) from dual
select next_day(sysdate,5) from dual
select last_day(sysdate) from dual
2.4 转换函数
select to_char(sysdate,'yy-mm-dd') from dual
select to_date('1000-1-1','yy-mm-dd') from dual
select to_number('100') from dual
附录
多种日期格式: |
YYYY:四位表示的年份 |
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪 |
IYYY:ISO标准的四位年份 |
MM:01~12的月份编号 |
MON:缩写字符集表示 |
MONTH:全拼字符集表示的月份,右边用空格填补 |
Q:季度 |
W:当月第几周 |
WW:当年第几周 |
IW:ISO标准的年中的第几周 |
D:当周第几天 |
DD:当月第几天 |
DDD:当年第几天 |
DY:缩写字符集表示 |
DAY:全拼字符集表示的天 如(星期六) |
HH,HH12:一天中的第几个小时,12进制表示法 |
HH24:一天中的第几个小时,取值为00~23 |
MI:一小时中的分钟 |
SS:一分钟中的秒 |
SSSS:从午夜开始过去的秒数 |