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

Oracle数据库(四)——函数上

2018-02-22 23:33 309 查看
数值型函数

绝对值,取余,判断数值正负函数

–ABS(n)函数。用于返回绝对值。该函数输入一个参数,参数类型为整数型,假如参数可以隐式转换成数值类型,那么也可以

select ABS(100),ABS(-100),ABS(‘100’) FROM DUAL;

–MOD(n2,n1)函数。该函数表示返回n2除以n1的余数。如果n1为0,将返回n2

select MOD(5,2),MOD(8/3,5),MOD(‘10’,5),MOD(-10,6),MOD(1,0) FROM DUAL;

–SIGN(n)函数。返回参数n的符号。正数返回1,0返回0,负数返回-1。但如果n为BINARY_FLOAT 或 BINARY_DOUBLE类型时,n>=0或者n=NaN函数会返回1。

select sign(‘9’),sign(-9),sign(0.00),sign(-2*’9’) from dual;

三角函数

COS(n)函数:用于返回参数n的余弦,n为弧度表示的角度

ACOS(n)函数:反余弦值;COSH(n)函数:双曲余弦值;

SIN(n)函数:正弦值;SINH(n)函数:双曲正弦值;

ASIN(n)函数:反正弦值;TAN(n)函数:正切值;

TANH(n)函数:双曲正切值;ATAH(n)函数:反正切值;

返回以指定数值为准整数的函数

CEIL(n)函数。其返回结果是大于等于输入参数的最小整数,该输入参数要求是十进制数值类型,或可以隐式的转换数值的类型,可以是非整数。

SELECT CEIL(10),CEIL(‘10,5’),CEIL(-10.2) FROM DUAL; 10,11,-10

FLOOR(n)函数。其返回结果是小于或等于参数的最大整数,该函数输入参数要求是十进制数值类型,或可以隐式地转换为数值的类型。可以是非整数。同CEIL函数相反。

SELECT FLOOR(10),FLOOR(‘10.5’),FLOOR(-10.2) FROM DUAL; 10,10,-11

指数,对数函数

SQRT(n)函数。该函数返回n的平方根。n为数字类型的时候不能为负数,将返回一个实数,当n为BINARY_FLOAT 或 BINARY_DOUBIE类型时,n<0将返回Nan。

SELECT SQRT(100),SQRT(‘53.9’) FROM DUAL;

POWER(n2,n1)函数。利用该函数可以得到n2的n1次幂的结果。这两个参数为任意数值,但如果n2为负数,那么n1必须为整数。

SELECT POWER(5,2),POWER(‘5’,2),POWER(5.5,2.5),POWER(-5,2),5*5 FROM DUAL

EXP(n)函数,表示返回e的n次幂,e为数学常量,e = 2.71828183…

LOG(n1,n2)函数。该函数可以返回以n1为底n2的对数,n1是除1和0以外的任意正数。n2为正数。

SELECT LOG(10,100),LOG(10.5,’100’),POWER(10,2) FROM DUAL;

LN(n)函数,表示返回n的自然对数。n要求大于0。

四舍五入截取函数

ROUND(for number) 函数。该函数的具体原型是ROUND(n,integer)。它将数值n四舍五入成第二个参数指定的形式的十进制数。参数integer要求是整数,如果不是整数,那么它将被自动截取为整数部分。当integer为正整数时,表示n被四舍五入为integer为小数。如果该参数为负数,则n被四舍五入到小数点向左integer位。

SELECT ROUND(100.23456,4),ROUND(100.23456,2.56),ROUND(155.23456,-2) FROM DUAL; 100.2346 100.23 200

TRUNC(for number) 函数。该函数原型TRUNC(n,integer)。它把数值n根据integer的值进行截取,截取时和integer的正负有关。参数integer要求是整数,如果不是整数,那么n将截取到integer位小数;如果integer为负数,则截取到小数点左第integer位,被截取部分用0代替。

SELECT TRUNC(100.23456,4),TRUNC(100.23456,2.56),TRUNC(155.23456,-2),TRUNC(155.23456) FROM DUAL; 100.2346 100.23 100 155

字符型函数

CHR(n[USING NCHAR_CS])函数。根据相应的字符集,把给定的ASCII码转换为字符。USING NCHAR_CS指明字符集

SELECT CHR(65) || CHR(66) || CHR(67) ABC, CHR(54678) FROM DUAL;

ASCII(char)函数,返回首字母的ASCII码值。

length函数,返回字符串长度

SUBSTR函数,该函数提供截取字符串的功能,而且该函数有很多的扩展形式,其具体语句结构是

{[SUBSTR]|[SUBSTRB]|[SUBSTRC]|[SUBSTR2]|[SUBSTR4]}(char,position[,substring_length]).
--position 要截取字符串的开始位置,初始为1,如果该值为负数,则表示从char的右边算起  substring_length 截取的长度


字符串连接函数:CONCAT(char1,char2) 效果连接符”||” 相似

字符串搜索函数:INSTR(string,substring[,position[,occurrence]])。

substring:要搜索的字符串,position:搜索的开始位置,默认为1,负数从右开始,occurrence:substring第几次出现,默认为1

字母大小写转换函数:

UPPER(char):装换成大写字母 LOWER(char):转换成小写字母

带排序参数的字母大小写转换函数:

NLS_INITCAP(char[,nlsparam])函数。将指定参数的第一个字母转换成大写。

nlsparam参数为可选参数,其设置可以到NSL_DATABASE_PARAMETERS表中查询。如果该函数没有nlsparam参数,则它和INITCAP函数一样。

select NLS_INITCAP('a test'), NLS_INITCAP('my test','NLS_SORT = SCHINESE_STROKE_M') FROM DUAL;
--参数中'NLS_SORT=SCHINESE_PINYIN_M'表示按拼音排序。


NLS_LOWER(char[,nlsparam])函数。将指定参数转换成小写。nlsparam参数同NLS_INITCAP函数设置

SELECT NLS_LOWER('ABC','NLS_SORT= XGerman'),
NLS_LOWER('THIS IS A TEST','NLS_SORT= XGerman')
FROM DUAL;


为指定参数排序函数

NLSSORT(char[,nlsparam])函数。根据nlsparam指定的方式对char进行排序。

SELECT * FROM PRODUCTINFO
ORDER BY NLSSORT(PRODUCTNAME,'NLS_SORT=SCHINESE_PINYIN_M')


替换字符串函数

REPLACE(char,search_string[,replacement_string]),
--char 搜索的目标字符串 search_string: 在目标字符串中搜索的字符串  replacement_string 可选参数,用来代替被搜索到的字符串,如果不用删除搜索到的字符


字符串填充函数

RPAD(expr1,n[,expr2]) :在字符串expr1的右边用字符expr2填充,直到字符串长度到n为止。如果expr2不存在,则以空格填充,

LRAD(expr1,n[,expr2]) 在左边填充

删除字符串首尾指定字符的函数

TRIM([LEADING|TRAILING|BOTH][time_character FROM] trim_source)
--LEADING 删除前缀
--TRAILING 删除后缀
--BOTH  删除time_source 的前缀和后缀字符
--trim_charater 删除的指定字符,默认删除空格
--trim_source 被操作的字符数


RTRIM(char[,set]) 删除char右边出现在set中的字符

LTRIM(char[,set]),删除左边的字符

字符集名称和ID互换函数

NLS_CHARSET_ID(string)函数。该函数可以得到字符集名称对应ID

NLS_CHARSET-NAME(number)函数。根据ID得到名称
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息