您的位置:首页 > 数据库 > Oracle

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排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: