现在的位置: 首页 > 综合 > 正文

内置SQL函数

2013年10月07日 ⁄ 综合 ⁄ 共 3521字 ⁄ 字号 评论关闭

1.1 字符函数--返回字符值

CHR(x) 返回在数据库字符集中与x具有等价数值的字符。ASCII(string)返回string的第一个字节的十进制表示。

 

CONCAT(string1,string2)返回string1+string2,等同于||运算符。

 

INITCAP(string)返回字符串中每个单词第一个字母大写,其他字母小写的string。不是字母的字符不受影响。

 

LOWER(string)以小写形式返回string,UPER(string)以大写形式返回string。

 

LPAD(string1, x [, string2] )返回长度为n,左边使用string2填充的string1。string2默认为单空格。若n<length.string1,截取str1.

RPAD(string1, x[, string2])返回长度为n,右边使用string2填充的string1。string2从左往右填充。

 

LTRIM(string1, string2)返回从左边算起,删除在string1中出现的string2中的字符,直至第一个不在string2中的字符,返回剩下的字符。

RTRIM(string1,string2)返回从右边算起……,string2默认为 单空格。

 

REPLACE(string,search_str[, replace_str])返回用replace_str替换所有在string中出现的search_str的string。replace_str默认单空格。

 

SUBSTR(string, a[ , b])返回从string第a个字母位置开始,长度为b的子字符串。若a为负数,那么返回字符是从string的末尾开始向右进行计算的,即倒数第a个字符开始,向右b长度的子字符串。若b小于1,返回NULL。

 

SUBSTRB(string,a[, b])同SUBSTR,只是a和b是以字节为单位表示的,而不是以字符为单位。即b是SUBSTR中的2倍。

 

TRANSLATE(string, from_str, to_str)返回将string中的from_str替换为对应的to_str的相应字符串。to_str不能为空。若某个参数为NULL,那么结果也为NULL。

 

 

 

NLS_INITCAP(string[, nlsparams])若没有指定nlsparams返回结果同INITCAP,nlsparams指定不同于该会话缺省值的不同排序序列

   ‘NLS_INITCAP= sort'

   SELECT NLS_INITCAP('ijsbeer’,‘NLS_SORT=Xdutch' "Result"  FROM dual;

     Result

     ---------------

     IJsbeer

 

NLS_LOWER(string[, nlsparams])同LOWER,参数的形式和用途同NLS_INITCAP。

NLS_UPPER(string,[ nlsparams])

 

 

1.2 字符函数--返回数字值

 

ASCII(string)返回string第一个字节的十进制表示。

 

INSTR(string1, string2[a,[,b]])返回string2在string1中从第a个字符开始,第b次出现的第一个string2字符的位置。

INSTRB(string1,string2[a,[,b]])同INSTR, a以及返回值是以字节为单位。

 

LENGTH(string)以字节为单位返回string的长度。CHAR类型末尾的空格也被计算到字符串的长度中了。NULL返回NULL。

LENGTHB(string)返回以字节为单位的长度。

   假设是双字节字符集

   SELECT LENGTHB('Mary is a girl') "Length" FROM dual;

   Length

   -----------

   28

 

NLSSORT(string[, nlsparams])返回用于排序string的字符串字节。所有的数值都被转换为字节字符串,这样在不同数据库字符集之间保持了一致性。

 

 

1.3数字函数

 

ABS(x) 返回x的绝对值。

 

ACOS(x)返回x的反余弦(arc cosine)值。 x∈[-1,1],输出值在0-Pi之间,以弧度为单位。

ASIN(x)返回x的反正弦(arc sine)值。x∈[-1,1],输出值在-Pi/2到Pi/2之间,以弧度为单位。

ATAN(x)返回x的反正切值。输出值在-Pi/2到Pi/2之间,以弧度为单位。

ATAN(X,Y)返回X和Y的反正切。输出值在-Pi到Pi之间,取决于X和Y的符号,以弧度为单位。ATAN2(X,Y)和ATAN(x/y)相同。x,y为坐标。

COS(x)返回x的预先cosine。x是以弧度表示的角度。

COSH(X)返回X的双曲余弦值hyperbolic cosine。

SIN(X)返回X的正弦sine值。X是以弧度为单位的角度。

SINH(X)返回X的双曲正弦值。

TAN(X)返回X的正切值。x是以弧度为单位的角度。

TANH(X)返回X的双曲正切值。

EXP(X)返回e的X次幂。e=2.71828183……

FLOOR(X)返回小于或等于X的最大整数值。

LN(X)返回X的自然对数natural logarithm。 X必须大于0。即以e为底X的对数。返回值为InX。

LOG(X,Y)返回以X为底Y的对数。X大于0,且不是0或者1.

MOD(X,Y)返回X除以Y的余数。如果Y=0,则返回X。

POWER(X,Y)返回X的Y次幂。若X<0,Y必须是一个整数。

ROUND(X[,Y])返回舍入到小数点右边Y位的X值。Y缺省值为0。

SIGN(X)若果X<0,返回-1。 如果X=0,返回0。如果X>0返回1。

SQRT(X)返回X平方根。X>=0。

 

TRUNC(X[,Y])返回截尾到(truncate,和round相对应)Y位小数的X值。Y缺省值为0。若Y<0,那么就结尾到小数点左边相应的位上。

 

 

1.4 日期函数

 

ADD_MONTHS(D,X)返回日期D加上X个月以后的结果。若结果D的日数比结果月份的日数大(如ADD_MONTHS(’30-JAN-2010',1),D是30-JAN-2010,结果月份是那么结果月份的最后一天会被返回。否则结果中的日和D中的日相同。

 

LAST_DAY(D)返回包含日期D的月份的最后一天的日期。

MONTH_BETWEEN(D1,D2),结果中包含一个分数部分时,以31天作为一个月份进行计算。D1-D2

NEW_TIME(D,ZONE1,ZONE2)将时区ZONE1中的时间D以 时区ZONE2中的时间格式返回。

NEXT_DAY(D,STRING)返回在日期D之后满足string给出的条件的那一天。string为星期几。

ROUND(D[, FORMAT])返回日期D按照由format指定的格式进行舍入。format的缺省值为'DD'

SYSDATE 返回当期日期和时间。

TRUNC(D[, FROMAT])返回结尾由from指定的单位的日期D。format的缺省值为'DD'。

 

日期算术:

运算         返回数值类型         结果

 


 

d1-d2      NUMBER              返回D1和D2之间相差的天数。不足一天的以小数形式表示。

d1+d2     N/A                     非法-- 仅能进行两个日期的相减。

D1+N      DATE                   在D1上加上N天并作为DATE类型返回结果。N可以是一个实数。

D1-N       DATE                   从D1上减去N天并作为DATE类型返回结果。

 

1.5转换函数

CHARTOROWID(STRING)将包含外部格式的ROWID的CHAR或VARCHAR2数值转换为内部的二进制格式。参数string必须是包含外部格式的ROWID的18字符的字符串。

CONVERT(STRING, DEST_SET[, SOURCE_SET])将字符串string从source_set所标识的字符集转换为由dest_set所标识的字符集。source_set缺省地被设置为数据库的字符集。

HEXTORAW(string)将由string表示的二进制数值转换为一个RAW的数值。

RAWTOHEX(RAWVALUE)将RAW类数值rawvalue转换为一个相应的十六进制表示的字符串。

TO_CHAR(D[, FROMAT [, NLSPARAMS]])将日期D转换为一个VARCHAR2类型的字符串。

抱歉!评论已关闭.