关键词不能为空

当前您在: 主页 > 英语 >

DB2函数大全

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-14 03:21
tags:

-

2021年2月14日发(作者:弃之可惜)


DB2


函数大全



函数名






函数解释


















函数举例



AVG()



返回一组数值的平均值


.



SELECT AVG(SALARY) FROM BSEMPMS;



CORR(),CORRELATION()



返回一对数值的关系系数


.



SELECT


CORRELATION(SALARY,BONUS) FROM BSEMPMS;



COUNT()



返回一组行或值的个数


.



SELECT COUNT(*) FROM BSEMPMS;



COVAR(),COVARIANCE()



返回一对数值的协方差


.



SELECT


COVAR(SALARY,BONUS) FROM BSEMPMS;



MAX()



返回一组数值中的最大值


.



SELECT MAX(SALARY) FROM BSEMPMS;



MIN()



返回一组数值中的最小值


.



SELECT MIN(SALARY) FROM BSEMPMS;



STDDEV()



返回一组数值的标准偏差


.



SELECT STDDEV(SALARY) FROM


BSEMPMS;



SUM()



返回一组数据的和


.



SELECT SUM(SALARY) FROM BSEMPMS;



VAR(),VARIANCE()



返回一组数值的方差


.



SELECT VARIANCE(SALARY) FROM


BSEMPMS;



ABS(),ABSVAL()



返回参数的绝对值


.



SELECT ABS(-3.4) FROM BSEMPMS;



ACOS()



返回参数的反余弦值


.



SELECT ACOS(0.9) FROM BSEMPMS;



ASCII()



返回整数参数最左边的字符的


ASCII



.



SELECT ASCII('R') FROM


BSEMPMS;



ASIN()



返回用弧度表示的角度 的参数的反正弦函数


.



SELECT ASIN(0.9) FROM


BSEMPMS;



ATAN()



返回参数的反正切值< /p>


,


该参数用弧度表示的角度的参数


.



SELECT ATAN(0.9)


FROM BSEMPMS;



ATAN2()



返回用弧度表示的角 度的


X



Y


坐 标的反正切值


.



SELECT


ATAN2(0.5,0.9) FROM BSEMPMS;



BIGINT()



返回整型常量中的 数字或字符串的


64


位整数表示


.



SELECT


BIGINT(EMP_NO) FROM BSEMPMS;



CEILING() OR CEIL()


< br>返回比参数大或等于参数的最小的整数值


.



SELECT


CEILING(3.56) FROM BSEMPMS;



SELECT CEIL(4.67) FROM BSEMPMS;



CHAR()



返回日期时间型


,


字符串


,


整数


,


十进制或双精度浮点数的字符串表示


.< /p>



SELECT CHAR(SALARY,',') FROM BSEMPMS;



CHR()



返回具有由参数指定的


ASCII


码的字符


.



SELECT CHAR(167) FROM


BSEMPMS;



CONCAT()



返回两个字符串的连接


.



SELECT CONCAT(EMP_NO,EMP_NAM)


FROM BSEMPMS;



YEAR()



返回数值的年部分


.



SELECT YEAR('2003/01/02') FROM BSEMPMS;



VARCHAR()



返回字符串


,


日期型


,


图形串 的可变长度的字符串表示


.



SELECT


VARCHAR(EMP_NAM,50) FROM BSEMPMS;



UCASE() OR UPPER()



返回字符串的大写


.



SELECT UCASE(EMP_NAM) FROM


BSEMPMS;



SELECT UPPER(EMP_NO) FROM BSEMPMS;



TRUNCATE() OR TRUNC()



从表达式小数点右边的位置开始截断并返回该数值


.



SELECT TRUNCATE(345.6789,2) FROM BSEMPMS;



TIME()



返回一个数值中的时间


.



SELECT TIME('2001-03-19.12.30.123456') FROM


BSEMPMS;



SUBSTR


(EXP1,EXP2)



返回


EXP1


串自

EXP2


处开始的


子串


.



SELECT


SUBSTR('CDNJFDJFJD',5) FROM



BSEMPMS;



SELECT


SUBSTR('CDNJFDJFJD',5,2) FROM



BSEMPMS;



SQRT()



返回该参数的平方根


.



SELECT SQRT(36) FROM BSEMPMS;



SPACE()



返回由参数指定的长度


,


包含空格在内 的字符串


.



SELECT SPACE(10)


FROM BSEMPMS;



SECOND()



返回一个数值的秒部分


.



SELECT SECOND('18:34:32') FROM


BSEMPMS;



RTRIM


()



删除字符串尾部的空格


.



SELECT RTRIM('COMMENT') FROM


BSEMPMS;



ROUND(EXP1,EXP2)



返回


EXP1


小数点右边的第


EXP2


位置处开始的四舍五入值


.



SELECT ROUND(2345.6789,2) FROM BSEMPMS



REPLACE(EXP1,EXP2,EXP3)




EXP3


替代


EXP 1


中所有的


EXP2



SELECT


CHAR(REPLACE('ROMANDD','NDD','CCB'),10) FROM BSEMPMS;



REPEAT(EXP1,EXP2)



返回


EXP1


重复


EXP2


次后的字符串


.



SELECT


CHAR(REPEAT('REPEAT',3),21) FROM BSEMPMS;



REAL()



返回一个数值的单精度浮点数表示


.



SELECT REAL(10) FROM BSEMPMS;



RAND


()



返回


0



1


之间的随机浮点数


.



SELECT RAND() FROM BSEMPMS;



POWER(EXP1,EXP2)



返回


EXP1



EXP2


次幂


.



SELECT POWER(2,5) FROM


BSEMPMS;



POSSTR


(EXP1,EXP2)



返回


EXP2



EXP1


中的位置


.



SELECT ('ABCDEFGH','D')


FROM BSEMPMS;



NULLIF


(EXP1,EXP2)



如果


EXP1=EXP2,


则为


NULL,


否则为


EXP1

< br>


NODENUMBER()



返回行的分区号


.



SELECT NODENUMBER(EMP_NO) FROM


BSEMPMS;



MONTH()



返回一个数值的月部分


.



SELECT MONTH('2003/10/20') FROM


BSEMPMS;



MOD(EXP1,EXP2)



返回


EXP1


除以


EXP2


的余数


.



SELECT MOD(20,8) FROM


BSEMPMS;



MINUTE()



返回一个数值的分钟部分


.



SELECT MINUTE('18:34:23') FROM


BSEMPMS;



LTRIM()



删除字符串前面的空格


.



SELECT LTRIM('CDDD') FROM BSEMPMS;



HOUR()



返回一个数值的小时部分


.



SELECT HOUR('18:34:23') FROM BSEMPMS;



DOUBLE()



如果参数是一个数字表达式


,


返回与其 相对应的浮点数


,


如果参数是字符


串表 达式


,


则返回该数的字符串表达式


.< /p>



SELECT DOUBLE('5678') FROM BSEMPMS;



EXP()



返回参数的指数函数


.



SELECT EXP(2) FROM BSEMPMS;



FLOAT()



返回一个数的浮点表示


.



SELECT FLOAT(789) FROM BSEMPMS;



FLOOR()



返回小于或等于参数的最大整数


.



SLECTFLOOR(88.93) FROM


BSEMPMS;



HEX()



返回一个表示为字符串的 值的


16


进制表示


.

< br>


SELECT HEX(16) FROM


BSEMPMS;



因为没有更好的术 语,所以您还可以使用英语来执行日期和时间计算:





current date + 1 YEAR



current date + 3 YEARS + 2 MONTHS + 15 DAYS



current time + 5 HOURS - 3 MINUTES + 10 SECONDS




要计算两个日期之间的天数,您可以对日期作减法,如下所示:





days (current date) - days (date('1999-10-22'))




而以下示例描述了如何获得微秒部分归零的当前时间戳记:





CURRENT


TIMESTAMP


-


MICROSECOND


(current


timestamp)


MICROSECONDS




如果想将日期或时间值与其它文本 相衔接,


那么需要先将该值转换成字符串。


为此,


只要使用



CHAR()


函数:





char(current date)



char(current time)



char(current date + 12 hours)




要将字符串转换成日期或时间值,可以使用:





TIMESTAMP ('2002-10-20-12.00.00.000000')



TIMESTAMP ('2002-10-20 12:00:00')



DATE ('2002-10-20')



DATE ('10/20/2002')



TIME ('12:00:00')



TIME ('12.00.00')





如果你 想将当前日期格式转化成定制的格式(比如


‘yyyymmdd’



,那又该如何去做


呢?按照我的经验,最好的办法就是编写 一个自己定制的格式化函数。





下面是这个



UDF


的代码


:




create function ts_fmt(TS timestamp, fmt varchar(20))



returns varchar(50)



return



with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as



(





SELECT





substr( digits (day(TS)),9),





substr( digits (month(TS)),9) ,





rtrim(char(year(TS))) ,





substr( digits (hour(TS)),9),





substr( digits (minute(TS)),9),





substr( digits (second(TS)),9),





rtrim(char(microsecond(TS)))






FROM



my1





)



SELECT



case fmt





when 'yyyymmdd'







then yyyy || mm || dd





when 'mm/dd/yyyy'







then mm || '/' || dd || '/' || yyyy





when 'yyyy/dd/mm hh:mi:ss'







then yyyy || '/' || mm || '/' || dd || ' ' ||











hh || ':' || mi || ':' || ss





when 'nnnnnn'







then nnnnnn





else







'date format ' || coalesce(fmt,' ') ||







' not recognized.'





end




FROM



tmp



DB2


使用建议汇总



1.


字符型转换成数值型





select integer(bh)


from table




select cast(bh as integer)


from table




2.


数值型转字符型





select trim(char(ylnx) from table








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


其他:



1.


去空格



*DB2


中:


Ltrim()


是去左边 空格


,rtrim()


是去右边空格。



*informix


中:


trim


()就是去空格。



用法:例:


string a=


abc







*DB2


中:


Ltrim(a)=



abc



ltrim



a



=






*informix


中:


trim< /p>



a



=


注意:


DB2


中无


t rim


()函数,所以要去空格要执行左右去空格。



2.


取值若为空值,用另外一个值代替


value(parm,string)


或者



coalesce(parm,string)


从表中取字段



parm

< p>
,若为空值,用


string


代替。



*DB2


中:


value (parm,string)


或者


coalesce(parm,string)


*informix

< br>中:


NVL(parm,string)




用法:例:







*DB2


中:


select value(name,'


呵呵


') from student;select


coalesce(name,'

呵呵


') from



student;







student

< br>的表中


name


字段为空值,则显示出‘呵呵’,若有值 则显示



name


字段的值

< p>





*informix


中:


select NVL(name,'


呵呵


') from student


一样





(parm,int z),


将字段重复


z


次后输出



*DB2


中:


select


name


from


student



select


repeat(name,2)


from


student





第一句输出为:‘呵呵’,





第二句输出为


:



‘呵呵呵呵’



4.


往表格中插入多行



*DB2



:


insert into table1 (select parm1,parm2... from table2)


*


注意:从


table2


中必须取与


t able1


相同多字段值才行




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


-----------


以下的文章主要向大家讲述的是


DB2


字符串


的有关函数与其具体用法,其中主


要内容有字符转换函 数,


去空格函数,


取子串函数,


字符串 比较函数以及数据类


型转换函数等内容的描述。



一、字符转换函数



1



ASCII()


返回字符表达式最左端字符的


ASCII

码值。在


ASCII


()函数中,纯数字的字符

< p>
串可不用‘’括起来,


但含其它字符的字符串必须用‘’括起来使用,


否则会出


错。



2



CHAR()



ASCII


码转换为字符。如果没有输入


0 ~ 255


之间的


ASCII


码值,

< p>
CHAR


()



返回


NULL




3



LOWER()



UPPER()


LOWER()


将字符串全部转为小写;


UP PER()


将字符串全部转为大写。



4



STR()


把数值型数据转换为字符型数据。



STR ([



length[



]])


length


指定返回的字符串的长度,


decimal

< br>指定返回的小数位数。如果没有指


定长度,缺省的


len gth


值为


10



decimal


缺省值为


0





length


或者


decimal


为负值时,返回


NULL





length


小于小数点左边(包括符号位)的位数时,返回


length



*




先服从


length


,再取


decimal




当返回的字符串位数小于


length


,左边补足空格。



二、去空格函数



1



LTRIM()


把字符串头部的空格去掉。



2



RTRIM()


把字符串尾部的空格去掉。



三、取子串函数



1



left()


LEFT (



)


返回


character_exdivssion


左起


integer_exdivssion


个字符。



2



RIGHT()


RIGHT (



)


返回


character_exdivssion


右起


integer_exdivssion


个字符。



3



SUBSTRING()


SUBSTRING (





length)


返回从字符串左边第


starting_ position


个字符起


length


个字符的部分。



四、字符串比较函数



1



CHARINDEX()


返回


DB2


字符串中某个指定的子串出现的开始位置。



CHARINDEX (<’substring_exdivssion’>,


)


其中


substring


_exdivssion


是所要查找的字符表达式,


exdivssion

< p>
可为字符


串也可为列名表达式。如果没有发现子串,则返回


0


值。



此函数不能用于


TEXT



IMAGE


数据类型。



2



PATINDEX()


返回字符串中某个指定的子串出现的开始位置。



PATINDEX (<’%substring _exdivssion%’>,


)

< br>其中子串表达


式前后必须有百分号“%”否则返回值为


0





CHARINDEX


函数不同的是 ,


PATINDEX


函数的子串中可以使用通配符,且此函


数可用于


CHAR



VARCHAR



TEXT


数据类型。





五、字符串操作函数



1



QUOTENAME()


返回被特定字符括起来的字符串。



QUOTENAME


(<’character_exdivssion’>[,


quote_


character])


其中


quote_


character


标明括字符串所用的字符,缺省值为“[]”。



2



REPLICATE()


返回一个重复


character_exdivssion


指定次数的字符串。



REPLICATE (character_exdivssion integer_exdivssion)


如果


integer_exdivssion


值为负值,则返回


NULL




3



REVERSE()


将指定的字符串的字符排列顺序颠倒。



REVERSE ()


其中


character_exdivssion


可以是字符


串、常数或一个列的值。



4



REPLACE()


返回被替换了指定子串的字符串。



REPLACE (






)



string_exdivssion3


替换在


string_exdivssion1


中的子串


string_exdivssion2




4



SPACE()


返回一个有指定长度的空白字符串。



SPACE ()


如果


integer_exdivssion


值为负值,则返回


NULL




5



STUFF()


用另一子串替换


DB2


字符串指定位置、长度的子串。



STUFF (





< /p>



)


如果起始位置为负或长度值为负,或者起始位置大于


characte r_exdivssion1


的长度,则返回


NULL


值。



如果


length


长度大于


character_exdivssion1



start_ position


以右的长


度,则


character_exdivssion 1


只保留首字符。



六、数据类型转换函数



1



CAST()


CAST ( AS [ length ])


2



CONVERT()


CONVERT ([ length ]



[



style])


1

< p>


data_type



SQL


Server


系统定义的数据类型,用户自定义的数据 类型不能


在此使用。



2



length


用于指定数据的长度,缺省值为


30




3


)把


CHAR



VA RCHAR


类型转换为诸如


INT


或< /p>


SAMLLINT


这样的


INTEGER


类型、


结果必须是带正号或负号的数值。



4



TEXT

类型到


CHAR



VARCHAR


类型转换最多为


8000


个字符,



CHAR



VA RCHAR


数据类型是最大长度。



5



IMAGE


类型存储的数据转换到< /p>


BINARY



VARBINARY


类型,最多为


8000


个字


符。



6


< br>把整数值转换为


MONEY



S MALLMONEY


类型,


按定义的国家的货币单位来处理,< /p>


如人民币、美元、英镑等。



7



BIT


类型的转换把非零值转换为

< p>
1


,并仍以


BIT


类型存 储。



8



试 图转换到不同长度的数据类型,


会截短转换值并在转换值后显示“+”,



标识发生了这种截断。



9




CONVERT

< br>()



函数的


style


选项能以不同的格式显示日期和时间。


style




DATATIME



SMALLDATETIME


数据转换为字符串时所选用的由


SQL


Server



统提供的转换样式编 号,不同的样式编号有不同的输出格式。



七、日期函数



1


day(date_exdivssion)


返回


date_exdivssion


中的日期值



2



month(date_ex divssion)


返回


date_exdivssion< /p>


中的月份值



3



year(date_exdivssion)


返回


date_exdivssion


中的年份值



4



DATEADD()


DATEADD (





)


返回指定日期


date


加上指定的额外日期间隔


number


产生的新日期。



5



DATEDIFF()


DATEDIFF (





)


返回两个指定日期在


datepart


方面的不同之处,



date2


超过


date1


的差距值,


其结果值是一个带有正负号的整数值。



6



DATENAME()


DATENAME (



)



DB2


字符串的形式返回日期的指定部分此部分。由


datepart


来指定。



7



DATEPART()


DATEPART (



)


以整数值的形式返回日期的指定部分。此部分由


datepart


来指定。



DATEPART (dd



date)


等同于


DAY (date)


DATEPART (mm



date)


等同于


MONTH (date)


DATEPART (yy



date)


等同于


YEAR (date)


8



GETDATE()



DATETIME


的缺省格式返回系统当前的日期和时间




SQL


日期和时间函数





DAYNAME






返回一 个大小写混合的字符串,


对于参数的日部分,


用星期表示这


一天的名称(例如,


Friday







DAYOFWEEK



返回参数中的星期几,用范围在



1-7


的整数值表示,其中



1


代表


星期日。





DAYOFWEEK_ISO


返回参数中的星期几,


用范围在



1-7


的整数值表示,


其中



1



表星期一。





DAYOFYEAR






返回参数中一年中的第几天,用范围在



1-366


的整数值表示。





DAYS












返回日期的整数表示。





JULIAN_DAY






返回从公元前



4712




1




1


日< /p>


(儒略日历的开始日期)


到参


数中指定日 期值之间的天数,用整数值表示。





MIDNIGHT_SECONDS


返回午夜和参数中指定的时间值之间的秒数,用范围在



0




86400


之间的整数值表示。





MONTHNAME









对于参 数的月部分的月份,返回一个大小写混合的字符串


(例如,


Ja nuary







TIMESTAMP_ISO






根据日期、时间或时间戳记参数而返回一个时间戳记值。





TIMESTAMP_FORMAT


从已使用字符模板解释的字符串返回时间戳记。





TIMESTAMPDIFF





根据两 个时间戳记之间的时差,返回由第一个参数定义的类


型表示的估计时差。





TO_CHAR











返回已用字符模板进行格式化的时间戳记的字符表示。


TO_CHAR




V


ARCHAR_FORMAT


的同义词。





TO_DATE










从已使 用字符模板解释过的字符串返回时间戳记。


TO_DATE




TIMESTAMP_FORMAT


的同义词。





WEEK












返回参数中一年的第几周,用范围在



1-54


的整数值表示。以星


期日作 为一周的开始。





WEEK_ISO







返回参数中一年的第几周,用范围在



1-53


的整数值表示。








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




mymm


回复于:


2003-08-04 14:22:38



Example:




YEAR (current timestamp)



MONTH (current timestamp)



DAY (current timestamp)



HOUR (current timestamp)



MINUTE (current timestamp)



SECOND (current timestamp)



MICROSECOND (current timestamp)







-


-


-


-


-


-


-


-



本文更新与2021-02-14 03:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/654404.html

DB2函数大全的相关文章