Oracle函数汇总
2015-11-16 17:20
555 查看
•函数类型:
字符 :
concat(column|expression,column|expression) 连接字符串
substr(column|expression,fromindex,length) 截取字符串,index从1开始
LOWER(column|expression)
转换字符值为小写。
UPPER(column|expression) 转换字符值为大写。
INITCAP(column|expression)
转化每个单词的首字母大写,其他都小写。
LENGTH(column|expression) 返回表达式中的字符个数。
INSTR(column|expression, ‘string’, [,m],
) 返回一个命名串的数字位置。随意地,你可以提供一个位置m作为查找的开始,在字符串中第n次发现的位置。m和n的默认值是1,意味着在起始开始查找,并且报告第一个发现的位置。 (每次只能指定一个字符)
TRIM(leading|trailing|both , trim_character FROM trim_source)使你能够从一个字符串修整头或尾字符(或两者)。如果trim_character或trim_source是字符文字,你必须放在单引号中
1. trim()删除字符串两边的空格。
2. ltrim()删除字符串左边的空格。
3. rtrim()删除字符串右边的空格。
4. trim('字符1' from '字符串2') 分别从字符2串的两边开始,删除指定的字符1。
5. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。
REPLACE(text, search_string, replacement_string)从字符串查找一个文本表达式,如果找到,用指定的置换串代替它 。
rpad/lpad(column,length,expr) 右/左填充,length:填充完毕后的长度,如果小于被填充的列值的长度,则不做填充而是截取. expr:填充物,可以是数字或字符串.
数字 :
ROUND:四舍五入指定小数的值
ROUND(45.926, 2) 45.93
TRUNC: 截断指定小数的值
TRUNC(45.926, 2) 45.92
MOD: 返回除法的余数
MOD(1600, 300) 100
power(num1,num2) :求num1的num2次方的值
日期 :
months_between 函数,计算两个日期之间的月份数,注意:两个参数必须日期类型;
add_months 函数,对指定日期字段添加月份数,注意:第一个参数必须是日期类型字段;
last_day 函数,获取指定日期所在月份的最后一天是几号;注意,参数必须是日期类型;
Next_day 函数,获取指定日期下个“星期几”是几号;注意,第一个参数必须是日期类型;
extract(year/month/day from (date '2015-12-12'|date类型的列)) 从日期中截取 年/月/日
转换 :
to_char(number|date,[fmt]) 将一个数字或日期转化成字符串,fmt是格式化样式.
to_number(char,[fmt]) 将一个字符串转化成数字,fmt是格式化样式.
to_date(char,[fmt]) 将一个字符串转化成字符串,fmt是格式化样式.
nvl(column,expr) 如果此列为null,则返回expr,expr必须和column类型相同
nvl(column,expr1,expr2) 如果此列为null,则返回expr2,否则返回expr1, expr1、expr2类型必须相同
分组:
sum(),avg(),count(),max(),min()
wm_concat(column) 将本组中此列的值用","连接成一个字符串
NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1
条件:
case when ... then ...
when ... then ...
else ... end
等值的case
case column when 值 then ...
when 值 then ...
else ... end
decode(column,value1,expr1,value2,expr2,[valuen,exprn,]expr(n+1)) 当列的值为value1时返回expr1,以此类推,找不到的就返回expr(n+1). 跟等值的case...when类似
其它:
lag(column1,offset,expr) over(order by column2) 落后offset行返回column1的值,expr为没有符合条件的值时的返回值
lead(column1,offset,expr) over(order by column2) 超前offset行返回column1的值,expr为没有符合条件的值时的返回值
row_number() over(partition by column1 order by column2) 按照column1分组,每组分别计算行号,都是从1开始,每组中按照column2排序,整体按照column1排序
字符 :
concat(column|expression,column|expression) 连接字符串
substr(column|expression,fromindex,length) 截取字符串,index从1开始
LOWER(column|expression)
转换字符值为小写。
UPPER(column|expression) 转换字符值为大写。
INITCAP(column|expression)
转化每个单词的首字母大写,其他都小写。
LENGTH(column|expression) 返回表达式中的字符个数。
INSTR(column|expression, ‘string’, [,m],
) 返回一个命名串的数字位置。随意地,你可以提供一个位置m作为查找的开始,在字符串中第n次发现的位置。m和n的默认值是1,意味着在起始开始查找,并且报告第一个发现的位置。 (每次只能指定一个字符)
TRIM(leading|trailing|both , trim_character FROM trim_source)使你能够从一个字符串修整头或尾字符(或两者)。如果trim_character或trim_source是字符文字,你必须放在单引号中
1. trim()删除字符串两边的空格。
2. ltrim()删除字符串左边的空格。
3. rtrim()删除字符串右边的空格。
4. trim('字符1' from '字符串2') 分别从字符2串的两边开始,删除指定的字符1。
5. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。
REPLACE(text, search_string, replacement_string)从字符串查找一个文本表达式,如果找到,用指定的置换串代替它 。
rpad/lpad(column,length,expr) 右/左填充,length:填充完毕后的长度,如果小于被填充的列值的长度,则不做填充而是截取. expr:填充物,可以是数字或字符串.
数字 :
ROUND:四舍五入指定小数的值
ROUND(45.926, 2) 45.93
TRUNC: 截断指定小数的值
TRUNC(45.926, 2) 45.92
MOD: 返回除法的余数
MOD(1600, 300) 100
power(num1,num2) :求num1的num2次方的值
日期 :
months_between 函数,计算两个日期之间的月份数,注意:两个参数必须日期类型;
add_months 函数,对指定日期字段添加月份数,注意:第一个参数必须是日期类型字段;
last_day 函数,获取指定日期所在月份的最后一天是几号;注意,参数必须是日期类型;
Next_day 函数,获取指定日期下个“星期几”是几号;注意,第一个参数必须是日期类型;
extract(year/month/day from (date '2015-12-12'|date类型的列)) 从日期中截取 年/月/日
转换 :
to_char(number|date,[fmt]) 将一个数字或日期转化成字符串,fmt是格式化样式.
to_number(char,[fmt]) 将一个字符串转化成数字,fmt是格式化样式.
to_date(char,[fmt]) 将一个字符串转化成字符串,fmt是格式化样式.
nvl(column,expr) 如果此列为null,则返回expr,expr必须和column类型相同
nvl(column,expr1,expr2) 如果此列为null,则返回expr2,否则返回expr1, expr1、expr2类型必须相同
分组:
sum(),avg(),count(),max(),min()
wm_concat(column) 将本组中此列的值用","连接成一个字符串
NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1
条件:
case when ... then ...
when ... then ...
else ... end
等值的case
case column when 值 then ...
when 值 then ...
else ... end
decode(column,value1,expr1,value2,expr2,[valuen,exprn,]expr(n+1)) 当列的值为value1时返回expr1,以此类推,找不到的就返回expr(n+1). 跟等值的case...when类似
其它:
lag(column1,offset,expr) over(order by column2) 落后offset行返回column1的值,expr为没有符合条件的值时的返回值
lead(column1,offset,expr) over(order by column2) 超前offset行返回column1的值,expr为没有符合条件的值时的返回值
row_number() over(partition by column1 order by column2) 按照column1分组,每组分别计算行号,都是从1开始,每组中按照column2排序,整体按照column1排序
相关文章推荐
- oracle autotrace 使用说明
- Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8)
- Java调用Oracle存储过程过程中几个问题
- 事务并发、事务隔离级别
- oracle入门心得
- ORACLE 字符转义的问题
- ORACLE的一些常见函数
- Oracle数据类型
- 恢复ORACLE被误更新或删除数据的办法
- Oracle 11G 进程描述
- 管理oracle 11g RAC 常用命令
- Oracle配置和使用闪回
- oracle job可以手动执行不能自动执行
- EBS报表中使用安全性层次结构控制
- oracle批量授权&维护索引&外键
- Oracle - 导入dmp文件, 如果tablespace 满了, 可使用add datafile给现有tablespace扩容
- 【CUBE】Oracle分组函数之CUBE魅力
- oracle查看权限
- win7、8、10(64)操作系统安装oracle11g(64)后,在登录时,database显示为空。
- 数据链路的创建(oracle数据库与oracle数据库)