搜档网
当前位置:搜档网 › DB2_SQL常用函数

DB2_SQL常用函数

DB2_SQL常用函数
DB2_SQL常用函数

DB2函数大全

函数名函数解释函数举例

AVG() 返回一组数值的平均值.

SELECTAVG(SALARY)FROMBSEMPMS;

CORR(),CORRELATION() 返回一对数值的关系系数.

SELECT CORRELATION(SALARY,BONUS)FROM BSEMPMS; COUNT() 返回一组行或值的个

数.SELECTCOUNT(*)FROMBSEMPMS;

COVAR(),COVARIANCE() 返回一对数值的协方差.

SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS; MAX() 返回一组数值中的最大值.

SELECTMAX(SALARY)FROMBSEMPMS;

MIN() 返回一组数值中的最小值.

SELECTMIN(SALARY)FROMBSEMPMS;

STDDEV() 返回一组数值的标准偏差.

SELECTSTDDEV(SALARY)FROMBSEMPMS;

SUM() 返回一组数据的和.

SELECTSUM(SALARY)FROMBSEMPMS;

VAR(),VARIANCE() 返回一组数值的方差.

SELECTVARIANCE(SALARY)FROMBSEMPMS;

ABS(),ABSVAL() 返回参数的绝对值.

SELECTABS(-3.4)FROMBSEMPMS;

ACOS() 返回参数的反余弦值.

SELECTACOS(0.9)FROMBSEMPMS;

ASCII() 返回整数参数最左边的字符的ASCII码.

SELECTASCII('R')FROMBSEMPMS;

ASIN() 返回用弧度表示的角度的参数的反正弦函数.

SELECTASIN(0.9)FROMBSEMPMS;

ATAN() 返回参数的反正切值,该参数用弧度表示的角度的参数.

SELECTATAN(0.9)FROMBSEMPMS;

ATAN2() 返回用弧度表示的角度的X和Y坐标的反正切值.

SELECTATAN2(0.5,0.9)FROMBSEMPMS;

BIGINT() 返回整型常量中的数字或字符串的64位整数表示

SELECTBIGINT(EMP_NO)FROMBSEMPMS;

CEILING() OR CEIL() 返回比参数大或等于参数的最小的整数值

CHAR() 返回日期时间型,字符串,整数,十进制或双精度浮点数的

字符串表示. SELECTCHAR(SALARY,',')FROMBSEMPMS; CHR() 返回具有由参数指定的ASCII码的字符

SELECTCHAR(167)FROMBSEMPMS;

CONCAT() 返回两个字符串的连接.

SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS; YEAR() 返回数值的年部

分.SELECTYEAR('2003/01/02')FROMBSEMPMS; VARCHAR() 返回字符串,日期型,图形串的可变长度的字符串表示

SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS; UCASE() OR UPPER() 返回字符串的大写

TRUNCATE() OR TRUNC() 从表达式小数点右边的位置开始截断并返回该数值.

SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;

TIME() 返回一个数值中的时间

SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS; SUBSTR(EXP1,EXP2) 返回EXP1串自EXP2处开始的子串.

SQRT() 返回该参数的平方

根.SELECTSQRT(36)FROMBSEMPMS;

SPACE() 返回由参数指定的长度,包含空格在内的字符

串.SELECTSPACE(10)FROMBSEMPMS;

SECOND() 返回一个数值的秒部

分.SELECTSECOND('18:34:32')FROMBSEMPMS; RTRIM() 删除字符串尾部的空格.

SELECTRTRIM('COMMENT')FROMBSEMPMS; ROUND(EXP1,EXP2) 返回EXP1小数点右边的第EXP2位置处开始的四舍五

入值.

SELECTROUND(2345.6789,2)FROMBSEMPMS REPLACE(EXP1,EXP2,EXP3

用EXP3替代EXP1中所有的EXP2

)

SELECTCHAR(REPLACE('ROMANDD','NDD','CCB'),10)

FROMBSEMPMS;

REPEAT(EXP1,EXP2) 返回EXP1重复EXP2次后的字符串.

SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS; REAL() 返回一个数值的单精度浮点数表示.

SELECTREAL(10)FROMBSEMPMS;

RAND() 返回0和1之间的随机浮点

数.SELECTRAND()FROMBSEMPMS;

POWER(EXP1,EXP2) 返回EXP1的EXP2次

幂.SELECTPOWER(2,5)FROMBSEMPMS;

POSSTR(EXP1,EXP2) 返回EXP2在EXP1中的位

置.SELECT('ABCDEFGH','D')FROMBSEMPMS; NULLIF(EXP1,EXP2) 如果EXP1=EXP2,则为NULL,否则为EXP1 NODENUMBER() 返回行的分区

号.SELECTNODENUMBER(EMP_NO)FROMBSEMPM

S;

MONTH() 返回一个数值的月部

分.SELECTMONTH('2003/10/20')FROMBSEMPMS; MOD(EXP1,EXP2) 返回EXP1除以EXP2的余

数.SELECTMOD(20,8)FROMBSEMPMS

MINUTE() 返回一个数值的分钟部分.

SELECTMINUTE('18:34:23')FROMBSEMPMS; LTRIM() 删除字符串前面的空

格.SELECTLTRIM('CDDD')FROMBSEMPMS;

HOUR() 返回一个数值的小时部分.

SELECTHOUR('18:34:23')FROMBSEMPMS; DOUBLE() 如果参数是一个数字表达式,返回与其相对应的浮点数,

如果参数是字符串表达式,则返回该数的字符串表达式.

SELECTDOUBLE('5678')FROMBSEMPMS;

EXP() 返回参数的指数函数.SELECTEXP(2)FROMBSEMPMS; FLOAT() 返回一个数的浮点表

示.SELECTFLOAT(789)FROMBSEMPMS;

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

数.SLECTFLOOR(88.93)FROMBSEMPMS;

HEX() 返回一个表示为字符串的值的16进制表示.

SELECTHEX(16)FROMBSEMPMS;

DAYNAME 返回一个大小写混合的字符串,对于参数的日部分,用星

期表示这一天的名称(例如,Friday)。

DAYOFWEEK 返回参数中的星期几,用范围在 1-7 的整数值表示,其

中 1 代表星期日。

DAYOFWEEK_ISO 返回参数中的星期几,用范围在 1-7 的整数值表示,其

中 1 代表星期一。

DAYOFYEAR 返回参数中一年中的第几天,用范围在 1-366 的整数值表

示。

DAYS 返回日期的整数表示。

JULIAN_DAY 返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到

参数中指定日期值之间的天数,用整数值表示。MIDNIGHT_SECONDS 返回午夜和参数中指定的时间值之间的秒数,用范围

在 0 到 86400 之间的整数值表示。

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

(例如,January)。

TIMESTAMP_ISO 根据日期、时间或时间戳记参数而返回一个时间戳记值。TIMESTAMP_FORMAT 从已使用字符模板解释的字符串返回时间戳记。TIMESTAMPDIFF 根据两个时间戳记之间的时差,返回由第一个参数定义的

类型表示的估计时差。

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

TO_CHAR 是 VARCHAR_FORMAT 的同义词。

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

TO_DATE 是 TIMESTAMP_FORMAT 的同义词。

WEEK 返回参数中一年的第几周,用范围在 1-54 的整数值表示。

以星期日作为一周的开始。

WEEK_ISO 返回参数中一年的第几周,用范围在 1-53 的整数值表示。

要使当前时间或当前时间戳记调整到 GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器:

current time - current timezone

current timestamp - current timezone

给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:

YEAR (current timestamp)

MONTH (current timestamp)

DAY (current timestamp)

HOUR (current timestamp)

MINUTE (current timestamp)

SECOND (current timestamp)

MICROSECOND (current timestamp)

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

current date + 1 YEAR

current date + 3 YEARS + 2 MONTHS + 15 DAYS

current time + 5 HOURS - 3 MINUTES + 10 SECONDS

从时间戳记单独抽取出日期和时间也非常简单:

DATE (current timestamp)

TIME (current timestamp)

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

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')

TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。

有时,您需要知道两个时间戳记之间的时差。为此,DB2 提供了一个名

为 TIMESTAMPDIFF() 的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有 30 天。以下示例描述了如何得到两个日期的近似时差:

timestampdiff (, char(

timestamp('2002-11-30-00.00.00')-

timestamp('2002-11-08-00.00.00')))

对于 ,可以使用以下各值来替代,以指出结果的时间单位:

1 = 秒的小数部分

2 = 秒

4 = 分

8 = 时

16 = 天

32 = 周

64 = 月

128 = 季度

256 = 年

当日期很接近时使用 timestampdiff() 比日期相差很大时精确。如果需要进行更精确的计算,可以使用以下方法来确定时差(按秒计):

(DAYS(t1) - DAYS(t2)) * 86400 +

(MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2))

为方便起见,还可以对上面的方法创建 SQL 用户定义的函数:

CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP)

RETURNS INT

RETURN (

(DAYS(t1) - DAYS(t2)) * 86400 +

(MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2))

)

@

如果需要确定给定年份是否是闰年,以下是一个很有用的 SQL 函数,您可以创建它来确定给定年份的天数:

CREATE FUNCTION daysinyear(yr INT)

RETURNS INT

RETURN (CASE (mod(yr, 400)) WHEN 0 THEN 366 ELSE

CASE (mod(yr, 4)) WHEN 0 THEN

CASE (mod(yr, 100)) WHEN 0 THEN 365 ELSE 366 END

ELSE 365 END

END)@

最后,以下是一张用于日期操作的内置函数表。它旨在帮助您快速确定可能满足您要求的函数,但未提供完整的参考。有关这些函数的更多信息,请参考 SQL 参考大全。

SQL 日期和时间函数

DAYNAME 返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。

DAYOFWEEK 返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。

DAYOFWEEK_ISO 返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。

DAYOFYEAR 返回参数中一年中的第几天,用范围在 1-366 的整数值表示。DAYS 返回日期的整数表示。

JULIAN_DAY 返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。

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

在 0 到 86400 之间的整数值表示。

MONTHNAME 对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。

TIMESTAMP_ISO 根据日期、时间或时间戳记参数而返回一个时间戳记值。TIMESTAMP_FORMAT 从已使用字符模板解释的字符串返回时间戳记。TIMESTAMPDIFF 根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。

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

TO_CHAR 是 VARCHAR_FORMAT 的同义词。

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

TO_DATE 是 TIMESTAMP_FORMAT 的同义词。

WEEK 返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。

WEEK_ISO 返回参数中一年的第几周,用范围在 1-53 的整数值表示。

db2日期操作函数

db2日期操作函数

当前时间:

CURRENT DATE

CURRENT TIME

CURRENT TIMESTAMP

获取时间的年、月、日、时、分、秒及微秒各部分:

YEAR (current timestamp)

MONTH (current timestamp)

DAY (current timestamp)

HOUR (current timestamp)

MINUTE (current timestamp)

SECOND (current timestamp)

MICROSECOND (current timestamp)

时间的加减:

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'))

时间转换为字符串:

char(current date)

字符串转换成时间:

TIMESTAMP()、DATE() 和TIME(), 支持的字符串格式需要参考帮助, 没有oracle 的to_date灵活

Data('2005-01-01')

日期和时间的一些函数:

DAYNAME 返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。

DAYOFWEEK 返回参数中的星期几,用范围在1-7 的整数值表示,其中 1 代表星期日。

DAYOFWEEK_ISO 返回参数中的星期几,用范围在1-7 的整数值表示,其

中 1 代表星期一。

DAYOFYEAR 返回参数中一年中的第几天,用范围在1-366 的整数值表示。DAYS 返回日期的整数表示。

JULIAN_DAY 返回从公元前4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。

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

在0 到86400 之间的整数值表示。

MONTHNAME 对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。

TIMESTAMP_ISO 根据日期、时间或时间戳记参数而返回一个时间戳记值。TIMESTAMP_FORMAT 从已使用字符模板解释的字符串返回时间戳记。TIMESTAMPDIFF 根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。

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

TO_CHAR 是VARCHAR_FORMAT 的同义词。

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

TO_DATE 是TIMESTAMP_FORMAT 的同义词。

WEEK 返回参数中一年的第几周,用范围在1-54 的整数值表示。以星期日作为一周的开始。

WEEK_ISO 返回参数中一年的第几周,用范围在1-53 的整数值表示。

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

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 sysibm.sysdummy1

)

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基础的东东看看,比在这里问快多了,虽然别人找的时候也快!!SQL 日期和时间函数

DAYNAME 返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。

DAYOFWEEK 返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。

DAYOFWEEK_ISO 返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。

DAYOFYEAR 返回参数中一年中的第几天,用范围在 1-366 的整数值表示。DAYS 返回日期的整数表示。

JULIAN_DAY 返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。

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

在 0 到 86400 之间的整数值表示。

MONTHNAME 对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。

TIMESTAMP_ISO 根据日期、时间或时间戳记参数而返回一个时间戳记值。TIMESTAMP_FORMAT 从已使用字符模板解释的字符串返回时间戳记。TIMESTAMPDIFF 根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。

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

TO_CHAR 是 VARCHAR_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)

MINUTE (current timestamp)

SECOND (current timestamp)

MICROSECOND (current timestamp)

引用:

mymm 回复于:2003-08-08 17:01:11

DAYS函数返回日期的整数表示。

要计算两个日期之间的天数,可以:

days (current date) - days (date('2000-9-1'))

要使用 SQL 获得当前的日期、时间及时间戳记,请参考适当的 DB2 寄存器:

SELECT current date FROM sysibm.sysdummy1

SELECT current time FROM sysibm.sysdummy1

SELECT current timestamp FROM sysibm.sysdummy1

sysibm.sysdummy1 表是一个特殊的内存中的表,用它可以发现如上面演示

的 DB2 寄存器的值。您也可以使用关键字 VALUES 来对寄存器或表达式求值。例如,在 DB2 命令行处理器(Command Line Processor,CLP)上,以下 SQL 语句揭示了类似信息:

VALUES current date

VALUES current time

VALUES current timestamp

在余下的示例中,我将只提供函数或表达式,而不再重

复 SELECT ... FROM sysibm.sysdummy1 或使用 VALUES 子句。

要使当前时间或当前时间戳记调整到 GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器:

current time - current timezone

current timestamp - current timezone

给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:

YEAR (current timestamp)

MONTH (current timestamp)

HOUR (current timestamp)

MINUTE (current timestamp)

SECOND (current timestamp)

MICROSECOND (current timestamp)

从时间戳记单独抽取出日期和时间也非常简单:

DATE (current timestamp)

TIME (current timestamp)

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

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')

CREATE PROCEDURE DB2ADMIN.P_DATA_DATE(IN V_ETLDATE VARCHAR(10)) BEGIN

DECLARE V_DATE_ID DATE;

SET V_DATE_ID = DATE(TRIM(CHAR(YEAR(DATE(V_ETLDATE))))||'-01-01');

IF DATE(V_ETLDATE) = DATE(TRIM(CHAR(YEAR(DATE(V_ETLDATE))))||'-01-01') THEN DELETE FROM DB2ADMIN.DATA_DATE T WHERE YEAR(T.DATA_DATE) =

YEAR(DATE(V_ETLDATE));

AUTHLOOP:

LOOP

IF V_DATE_ID <= DATE(TRIM(CHAR(YEAR(DATE(V_ETLDATE))))||'-12-31') THEN INSERT INTO DB2ADMIN.DATA_DATE(DATA_DATE) VALUES(V_DATE_ID);

COMMIT;

END IF;

IF V_DATE_ID > DATE(TRIM(CHAR(YEAR(DATE(V_ETLDATE))))||'-12-31') THEN LEAVE AUTHLOOP;

END IF;

SET V_DATE_ID = V_DATE_ID + 1 DAY;

END LOOP;

END IF;

INSERT INTO DB2ADMIN.D_DATE

( DAY_ID,

CALENDAR_DATE,

DAY_SHORT,

MONTH_SHORT,

QUARTER_SHORT,

YEAR_ID,

MONTH_DAYS,

QUARTER_DAYS,

YEAR_DAYS,

IS_MONTH_END,

IS_QUARTER_END,

IS_YEAR_END

)

SELECT REPLACE(CHAR(DATA_DATE),'-',''),

DATA_DATE,

DAY(DATA_DATE),

MONTH(DATA_DATE),

QUARTER(DATA_DATE),

YEAR(DATA_DATE),

SUBSTR(REPLACE(CHAR(DATA_DATE),'-',''),7,2),

CASE WHEN QUARTER(DATA_DATE) = 1 THEN

DAYS(DATA_DATE)-DAYS(TRIM(CHAR(YEAR(DATA_DATE)))||'-01-01')+ 1

WHEN QUARTER(DATA_DATE) = 2 THEN

DAYS(DATA_DATE)-DAYS(TRIM(CHAR(YEAR(DATA_DATE)))||'-04-01')+ 1

WHEN QUARTER(DATA_DATE) = 3 THEN

DAYS(DATA_DATE)-DAYS(TRIM(CHAR(YEAR(DATA_DATE)))||'-07-01')+ 1

WHEN QUARTER(DATA_DATE) = 4 THEN

DAYS(DATA_DATE)-DAYS(TRIM(CHAR(YEAR(DATA_DATE)))||'-10-01')+ 1 END,

DAYOFYEAR(DATA_DATE),

CASE WHEN SUBSTR(REPLACE(CHAR(DATA_DATE+ 1 DAY),'-',''),7,2)='01' THEN 1 ELSE 0 END,

CASE WHEN SUBSTR(REPLACE(CHAR(DATA_DATE+ 1 DAY),'-',''),5,4) ='0331' THEN 1 WHEN SUBSTR(REPLACE(CHAR(DATA_DATE+ 1 DAY),'-',''),5,4)='0630' THEN 1

WHEN SUBSTR(REPLACE(CHAR(DATA_DATE+ 1 DAY),'-',''),5,4)='0930' THEN 1

WHEN SUBSTR(REPLACE(CHAR(DATA_DATE+ 1 DAY),'-',''),5,4)='1231' THEN 1

ELSE 0

END,

CASE WHEN SUBSTR(REPLACE(CHAR(DATA_DATE),'-',''),5,4) = '1231' THEN 1 ELSE 0 END

FROM DB2ADMIN.DATA_DATE;

COMMIT;

END

15个常用的Excel函数公式

15 个常用的Excel函数公式,拿来即用1、查找重复内容 =IF(COUNTIF(A:A,A2)>1," 重复","") 2、重复内容首次出现时不提示 =IF(COUNTIF(A$2:A2,A2)>1," 重复","") 3、重复内容首次出现时提示重复 =IF(COUNTIF(A2:A99,A2)>1," 重复","")

4、根据出生年月计算年龄 =DATEDIF(A2,TODAY(),"y") 5、根据身份证号码提取出生年月 =--TEXT(MID(A2,7,8),"0-00- 00") 6、根据身份证号码提取性别 =IF(MOD(MID(A2,15,3),2)," 男"," 女") 7、几个常用的汇总公式 A列求和:=SUM(A:A)

A列最小值: =MIN(A:A) A列最大值: =MAX (A:A) A列平均值: =AVERAGE(A:A) A列数值个数: =COUNT(A:A) 8、成绩排名 =RANK.EQ(A2,A$2:A$7) 9、中国式排名(相同成绩不占用名次) =SUMPRODUCT((B$2:B$7>B2)/COUNTIF(B$2:B$7,B$2:B$7))+1 10、90 分以上的人数

=COUNTIF(B1:B7,">90") 11、各分数段的人数 同时选中 E2:E5,输入以下公式,按 Shift+Ctrl+Enter =FREQUENCY(B2:B7,{70;80;90}) 12、按条件统计平均值 =AVERAGEIF(B2:B7,"男",C2:C7) 13、多条件统计平均值 =AVERAGEIFS(D2:D7,C2:C7,男"",B2:B7," 销售")

个常用的Excel函数公式

个常用的E x c e l函数公 式 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

15个常用的Excel函数公式,拿来即用 1、查找重复内容 =IF(COUNTIF(A:A,A2)>1,"重复","") 2、重复内容首次出现时不提示 =IF(COUNTIF(A$2:A2,A2)>1,"重复","") 3、重复内容首次出现时提示重复 =IF(COUNTIF(A2:A99,A2)>1,"重复","") 4、根据出生年月计算年龄

=DATEDIF(A2,TODAY(),"y") 5、根据身份证号码提取出生年月 =--TEXT(MID(A2,7,8),"0-00-00") 6、根据身份证号码提取性别 =IF(MOD(MID(A2,15,3),2),"男","女") 7、几个常用的汇总公式 A列求和:=SUM(A:A) A列最小值:=MIN(A:A) A列最大值:=MAX (A:A) A列平均值:=AVERAGE(A:A)

A列数值个数:=COUNT(A:A) 8、成绩排名 =(A2,A$2:A$7) 9、中国式排名(相同成绩不占用名次) =SUMPRODUCT((B$2:B$7>B2)/COUNTIF(B$2:B$7,B$2:B$7))+1 10、90分以上的人数 =COUNTIF(B1:B7,">90")

11、各分数段的人数 同时选中E2:E5,输入以下公式,按Shift+Ctrl+Enter =FREQUENCY(B2:B7,{70;80;90}) 12、按条件统计平均值 =AVERAGEIF(B2:B7,"男",C2:C7) 13、多条件统计平均值 =AVERAGEIFS(D2:D7,C2:C7,"男",B2:B7,"销售")

最常用函数公式大全

Excel函数公式大全工作中最常用Excel函数公式大全 一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2 =IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。 ? 2、IF多条件判断返回值 公式:C2 =IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数.

? 三、统计公式 1、统计两个表格重复的内容 公式:B2 =COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。 ? 2、统计不重复的总人数 公式:C2 =SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

? 四、求和公式 1、隔列求和 公式:H3 =SUMIF($A$2:$G$2,H$2,A3:G3) 或 =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3) 说明:如果标题行没有规则用第2个公式 ? 2、单条件求和 公式:F2 =SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

? 3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。 ? 4、多条件模糊求和 公式:C11 =SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符*

整理的SQL常用函数

create table test (id int, value varchar(10)) insertinto test values('1','aa') insertinto test values('1','bb') insertinto test values('2','aaa') insertinto test values('2','bbb') insertinto test values('2','ccc') insertinto test values('3','aa') insertinto test values('4','bb') select*from test select id, [values] =stuff((select','+ [values] from test t where id = test.id forxmlpath('')), 1 , 1 ,'') from test groupby id stuff(param1,startIndex,length, param2) 说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/

COUNT()函数用于返回一个列内所有非空值的个数,这是一个整型值。 由于COUNT(*)函数会忽略NULL值,所以这个查询的结果是2。 三、SUM()函数 SUM()函数是最常用的聚合函数之一,它的功能很容易理解:和AVG()函数一样,它用于数值数据类型,返回一个列范围内所有非空值的总和。 四、CAST()函数 CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。 以下例子用于将文本字符串'123'转换为整型: SELECT CAST('123' AS int) 返回值是整型值123。 如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢? SELECT CAST('123.4' AS int) CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于123.4不能用int数据类型来表示,所以对这个函数调用将产生一个错误。 Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value '123.4' to a column of data type int. 在将varchar值'123.4' 转换成数据类型int时失败。 要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal 值的精度与小数位数。在本例中,精度与小数位数分别为9与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。 SELECT CAST('123.4' AS decimal(9,2)) decimal数据类型在结果网格中将显示有效小数位:123.40 精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQL Server 将截断数字的小数部分,而不会产生错误。 SELECT CAST('123.4' AS decimal) 结果是一个整数值:123 五、CONVERT()函数 对于简单类型转换,CONVERT()函数和CAST()函数的功能相同,只是语法不同。 CAST()函数一般更容易使用,其功能也更简单。 CONVERT()函数的优点是可以格式化日期和数值,它需要两个参数:第1个是目标数据类型,第2个是源数据。 CONVERT()函数还具有一些改进的功能,它可以返回经过格式化的字符串值,且可以把日期值格式化成很多形式。有28种预定义的符合各种国际和特殊要求的日期与时间输出格式。 六、STR()函数 这是一个将数字转换为字符串的快捷函数。这个函数有3个参数:数值、总长度和小数位数。如果数字的整数位数和小数位数(要加上小数点占用的一个字符)的总和小于总长度,对结果中左边的字符将用空格填充。在下面第1个例子中,包括小数点在内一共是5个字符。结果

电子表格常用函数公式

电子表格常用函数公式 1.去掉最高最低分函数公式: =SUM(所求单元格…注:可选中拖动?)—MAX(所选单元格…注:可选中拖动?)—MIN(所求单元格…注:可选中拖动?) (说明:“SUM”是求和函数,“MAX”表示最大值,“MIN”表示最小值。)2.去掉多个最高分和多个最低分函数公式: =SUM(所求单元格)—large(所求单元格,1)—large(所求单元格,2) —large(所求单元格,3)—small(所求单元格,1) —small(所求单元格,2) —small(所求单元格,3) (说明:数字123分别表示第一大第二大第三大和第一小第二小第三小,依次类推) 3.计数函数公式: count 4.求及格人数函数公式:(”>=60”用英文输入法) =countif(所求单元格,”>=60”) 5.求不及格人数函数公式:(”<60”用英文输入法) =countif(所求单元格,”<60”) 6.求分数段函数公式:(“所求单元格”后的内容用英文输入法) 90以上:=countif(所求单元格,”>=90”) 80——89:=countif(所求单元格,”>=80”)—countif(所求单元格,”<=90”) 70——79:=countif(所求单元格,”>=70”)—countif(所求单元

格,”<=80”) 60——69:=countif(所求单元格,”>=60”)—countif(所求单元格,”<=70”) 50——59:=countif(所求单元格,”>=50”)—countif(所求单元格,”<=60”) 49分以下: =countif(所求单元格,”<=49”) 7.判断函数公式: =if(B2,>=60,”及格”,”不及格”) (说明:“B2”是要判断的目标值,即单元格) 8.数据采集函数公式: =vlookup(A2,成绩统计表,2,FALSE) (说明:“成绩统计表”选中原表拖动,“2”表示采集的列数) 公式是单个或多个函数的结合运用。 AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。条件判断 AVERAGE 求出所有参数的算术平均值。数据计算 COLUMN 显示所引用单元格的列标号值。显示位置 CONCATENATE 将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。字符合并 COUNTIF 统计某个单元格区域中符合指定条件的单元格数目。条件统计 DATE 给出指定数值的日期。显示日期

15个常用的Excel函数公式

15个常用的Excel函数公式,拿来即用 1、查找重复内容 =IF(COUNTIF(A:A,A2)>1,"重复","") 2、重复内容首次出现时不提示 =IF(COUNTIF(A$2:A2,A2)>1,"重复","") 3、重复内容首次出现时提示重复 =IF(COUNTIF(A2:A99,A2)>1,"重复","")

4、根据出生年月计算年龄 =DATEDIF(A2,TODAY(),"y") 5、根据身份证号码提取出生年月 =--TEXT(MID(A2,7,8),"0-00-00") 6、根据身份证号码提取性别 =IF(MOD(MID(A2,15,3),2),"男","女") 7、几个常用的汇总公式 A列求和:=SUM(A:A)

A列最小值:=MIN(A:A) A列最大值:=MAX (A:A) A列平均值:=AVERAGE(A:A) A列数值个数:=COUNT(A:A) 8、成绩排名 =RANK.EQ(A2,A$2:A$7) 9、中国式排名(相同成绩不占用名次) =SUMPRODUCT((B$2:B$7>B2)/COUNTIF(B$2:B$7,B$2:B$7))+1 10、90分以上的人数

=COUNTIF(B1:B7,">90") 11、各分数段的人数 同时选中E2:E5,输入以下公式,按Shift+Ctrl+Enter =FREQUENCY(B2:B7,{70;80;90}) 12、按条件统计平均值 =AVERAGEIF(B2:B7,"男",C2:C7) 13、多条件统计平均值 =AVERAGEIFS(D2:D7,C2:C7,"男",B2:B7,"销售")

DB2_SQL常用函数

DB2函数大全 函数名函数解释函数举例 AVG() 返回一组数值的平均值. SELECTAVG(SALARY)FROMBSEMPMS; CORR(),CORRELATION() 返回一对数值的关系系数. SELECT CORRELATION(SALARY,BONUS)FROM BSEMPMS; COUNT() 返回一组行或值的个 数.SELECTCOUNT(*)FROMBSEMPMS; COVAR(),COVARIANCE() 返回一对数值的协方差. SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS; MAX() 返回一组数值中的最大值. SELECTMAX(SALARY)FROMBSEMPMS; MIN() 返回一组数值中的最小值. SELECTMIN(SALARY)FROMBSEMPMS; STDDEV() 返回一组数值的标准偏差. SELECTSTDDEV(SALARY)FROMBSEMPMS; SUM() 返回一组数据的和. SELECTSUM(SALARY)FROMBSEMPMS; VAR(),VARIANCE() 返回一组数值的方差. SELECTVARIANCE(SALARY)FROMBSEMPMS; ABS(),ABSVAL() 返回参数的绝对值. SELECTABS(-3.4)FROMBSEMPMS; ACOS() 返回参数的反余弦值. SELECTACOS(0.9)FROMBSEMPMS; ASCII() 返回整数参数最左边的字符的ASCII码. SELECTASCII('R')FROMBSEMPMS; ASIN() 返回用弧度表示的角度的参数的反正弦函数. SELECTASIN(0.9)FROMBSEMPMS; ATAN() 返回参数的反正切值,该参数用弧度表示的角度的参数. SELECTATAN(0.9)FROMBSEMPMS; ATAN2() 返回用弧度表示的角度的X和Y坐标的反正切值. SELECTATAN2(0.5,0.9)FROMBSEMPMS;

电子表格常用函数公式

电子表格常用函数公式 1、自动排序函数: =RANK(第1数坐标,$第1数纵坐标$横坐标:$最后数纵坐标$横坐标,升降序号1降0升) 例如:=RANK(X3,$X$3:$X$155,0) 说明:从X3 到X 155自动排序 2、多位数中间取部分连续数值: =MID(该多位数所在位置坐标,所取多位数的第一个数字的排列位数,所取数值的总个数) 例如:612730************在B4坐标位置,取中间出生年月日,共8位数 =MID(B4,7,8) =19820711 说明:B4指该数据的位置坐标,7指从第7位开始取值,8指一共取8个数字 3、若在所取的数值中间添加其他字样, 例如:612730************在B4坐标位置,取中间出生年、月、日,要求****年**月**日格式 =MID(B4,7,4)&〝年〞&MID(B4,11,2) &〝月〞& MID(B4,13,2) &〝月〞&

=1982年07月11日 说明:B4指该数据的位置坐标,7、11指开始取值的第一位数排序号,4、2指所取数值个数,引号必须是英文引号。 4、批量打印奖状。 第一步建立奖状模板:首先利用Word制作一个奖状模板并保存为“奖状.doc”,将其中班级、姓名、获奖类别先空出,确保打印输出后的格式与奖状纸相符(如图1所示)。 第二步用Excel建立获奖数据库:在Excel表格中输入获奖人以及获几等奖等相关信息并保存为“奖状数据.xls”,格式如图2所示。 第三步关联数据库与奖状:打开“奖状.doc”,依次选择视图→工具栏→邮件合并,在新出现的工具栏中选择“打开数据源”,并选择“奖状数据.xls”,打开后选择相应的工作簿,默认为sheet1,并按确定。将鼠标定位到需要插入班级的地方,单击“插入域”,在弹出的对话框中选择“班级”,并按“插入”。同样的方法完成姓名、项目、等第的插入。 第四步预览并打印:选择“查看合并数据”,然后用前后箭头就可以浏览合并数据后的效果,选择“合并到新文档”可以生成一个包含所有奖状的Word文档,这时就可以批量打印了。

工作中最常用的excel函数公式大全

工作中最常用的excel函数公式大全 一、数字处理 1、取绝对值=ABS(数字) 2、取整=INT(数字) 3、四舍五入=ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2=IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。 2、IF多条件判断返回值公式: C2=IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数。

1、统计两个表格重复的内容 公式:B2=COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。 2、统计不重复的总人数 公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

1、隔列求和 公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3) 或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3) 说明:如果标题行没有规则用第2个公式 2、单条件求和 公式:F2=SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。 4、多条件模糊求和 公式:C11=SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符*

sql常用函数instr()和substr()

在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。 其语法为: instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceString代表源字符串; destString代表想聪源字符串中查找的子串; start代表查找的开始位置,该参数可选的,默认为1; appearPosition代表想从源字符中查找出第几次出现的destString,该参数也是可选的,默认为1; 如果start的值为负数,那么代表从右往左进行查找,但是位置数据仍然从左向右计算。 返回值为:查找到的字符串的位置。 对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。例如:SQL> select instr('yuechaotianyuechao','ao') position from dual; POSITION ---------- 6 从第7个字符开始搜索 SQL> select instr('yuechaotianyuechao','ao', 7) position from dual; POSITION ---------- 17 从第1个字符开始,搜索第2次出现子串的位置 SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual; POSITION ---------- 17 注意:1。若‘起始位置’=0 时返回结果为0, 2。这里只有三个参数,意思是查找第一个要查找字符的位置(因为‘第几次出现’默认为1), 当‘起始位置’不大于要查找的第一个字符的位置时,返回的值都将是第一个字符的位置,如果‘起始位置’大于要查找的第一个字符的位置时,返回的值都将是第2个字符的位置,依此类推……(但是也是以第一个字符开始计数)

数据库常用函数

数据库常用函数

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份和还原 备份:exp dsscount/sa@dsscount owner=dsscount file=C:\dsscount_data_backup\dsscount.dmp log=C:\dsscount_data_backup\outputa.log 还原:imp dsscount/sa@dsscount file=C:\dsscount_data_backup\dsscount.dmp full=y ignore=y log=C:\dsscount_data_backup\dsscount.log statistics=none 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) CREATE TABLE ceshi(id INT not null identity(1,1) PRIMARY KEY,NAME VARCHAR(50),age INT) id为主键,不为空,自增长 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

Excel常用函数公式大全(实用)

Excel常用函数公式大全 1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。 2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。 3、从输入的18位身份证号的出生年月计算公式: =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。 4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。 1、求和:=SUM(K2:K56) ——对K2到K56这一区域进行求和; 2、平均数:=AVERAGE(K2:K56) ——对K2 K56这一区域求平均数; 3、排名:=RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名; 4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格"))) 5、学期总评:=K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩; 6、最高分:=MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分; 7、最低分:=MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分; 8、分数段人数统计: (1)=COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格; (2)=COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格; (3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格; (4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格;

常用excel函数公式大全

常用的excel函数公式大全 一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2 =IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。

2、IF多条件判断返回值 公式:C2 =IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数。 三、统计公式 1、统计两个表格重复的内容 公式:B2 =COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。

2、统计不重复的总人数 公式:C2 =SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。 四、求和公式

1、隔列求和 公式:H3 =SUMIF($A$2:$G$2,H$2,A3:G3) 或 =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)说明:如果标题行没有规则用第2个公式 2、单条件求和 公式:F2 =SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。

4、多条件模糊求和 公式:C11 =SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符* 5、多表相同位置求和 公式:b2 =SUM(Sheet1:Sheet19!B2) 说明:在表中间删除或添加表后,公式结果会自动更新。 6、按日期和产品求和

plsql常用函数

PLSQL常用函数 1)处理字符的函数 || CONCAT ---并置运算符。 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ABC’,’DE’) =’ABCDE’ INSTR---搜索子串位置 格式∶INSTR(STRING , SET[ , 开始位置[ , 出现次数]]) 例∶ INSTR (‘this is a test’ , ‘i’ , 1,2)=6 LENGTH----计算串长 格式∶ LENGTH(string) LTRIM,RTRIM,TRIM -----左截断,右截断,左右截断。默认为删除空格。 格式∶ LTRIM(STRING[,‘SET’]) 例∶ LTRIM(‘***tes*t***’,’*’)=’tes*t***’ LOWER----将字符串转换为小写 格式∶LOWER(string) UPPER---将字符串转换为大写 格式∶UPPER(string) SUBSTR----提取子串。START为正数时从左开始、为负数时从右开始 格式∶ SUBSTR(STRING , START [ , COUNT]) 例∶ SUBSTR(‘WORDSTAR’ , 2 , 3)=’ ORD’ REPLACE---搜索指定字符串并替换 格式∶REPLACE(string , substring , replace_string) 例∶ REPLACE(‘this is a test’ , ‘this’ , ‘that an’)=’that an is a test’

2)处理数字的函数 ROUND---返回固定小数位数。 格式∶ROUND (value)value为数字 例∶ROUND (66.123,2)= 66.12 CELL---返回大于等于特定值的最小整数 格式∶CELL(value) 例∶ CELL(-10,9)= -10 3)处理日期 SYSDATE---系统时间。精确至秒 例:TO_CHAR(SYSDATE,'YYYY-MM-DD') 2011-05-11(返回日期) TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') 2011-05-11 11:05:15(返回日期+时间) 常用日期数据格式 Y或YY或YYY 年的最后一位,两位或三位Select to_char(sysdate,’YYY’) from dual; SYEAR或YEAR SYEAR使公元前的年份前加一负号Select to_char(sysdate,’SYEAR’) from dua l;-1112表示公元前111 2年 Q 季度,1~3月为第一季度Select to_char(sysdate,’Q’) from dual;2表示第二季度① MM 月份数Select to_char(sysdate,’MM’) from dual;12表示12月 RM 月份的罗马表示Select to_char(sysdate,’RM’) from dual;IV表示4月 Month 用9个字符长度表示的月份名Select to_char(sysdate,’Month’) from dual;May后跟6个空格表示5月 WW 当年第几周Select to_char(sysdate,’WW’) from dual;24表示2002年6月13日为第24周W 本月第几周Select to_char(sysdate,’W’) from dual;2002年10月1日为第1周 DDD 当年第几, 1月1日为001,2月1日为032 Select to_char(sysdate,’DDD’) from dual;36 3 2002年1 2月2 9日为第363天 DD 当月第几天Select to_char(sysdate,’DD’) from dual;04 10月4日为第4天 D 周内第几天Select to_char(sysdate,’D’) from dual;5 2002年3月14日为星期一 DY 周内第几天缩写Select to_char(sysdate,’DY’) from dual;SUN 2002年3月24日为星期天

16种常用数据分析方法66337

一、描述统计 描述性统计是指运用制表和分类,图形以及计筠概括性数据来描述数据的集中趋势、离散趋势、偏度、峰度。 1、缺失值填充:常用方法:剔除法、均值法、最小邻居法、比率回归法、决策树法。 2、正态性检验:很多统计方法都要求数值服从或近似服从正态分布,所以之前需要进行正态性检验。常用方法:非参数检验的K-量检验、P-P图、Q-Q图、W检验、动差法。 二、假设检验 1、参数检验 参数检验是在已知总体分布的条件下(一股要求总体服从正态分布)对一些主要的参数(如均值、百分数、方差、相关系数等)进行的检验。 1)U验使用条件:当样本含量n较大时,样本值符合正态分布 2)T检验使用条件:当样本含量n较小时,样本值符合正态分布 A 单样本t检验:推断该样本来自的总体均数μ与已知的某一总体均数μ0 (常为理论值或标准值)有无差别; B 配对样本t检验:当总体均数未知时,且两个样本可以配对,同对中的两者在可能会影响处理效果的各种条件方面扱为相似; C 两独立样本t检验:无法找到在各方面极为相似的两样本作配对比较时使用。 2、非参数检验 非参数检验则不考虑总体分布是否已知,常常也不是针对总体参数,而是针对总体的某些一股性假设(如总体分布的位罝是否相同,总体分布是否正态)进行检验。 适用情况:顺序类型的数据资料,这类数据的分布形态一般是未知的。

A 虽然是连续数据,但总体分布形态未知或者非正态; B 体分布虽然正态,数据也是连续类型,但样本容量极小,如10以下; 主要方法包括:卡方检验、秩和检验、二项检验、游程检验、K-量检验等。 三、信度分析 检査测量的可信度,例如调查问卷的真实性。 分类: 1、外在信度:不同时间测量时量表的一致性程度,常用方法重测信度 2、内在信度;每个量表是否测量到单一的概念,同时组成两表的内在体项一致性如 何,常用方法分半信度。 四、列联表分析 用于分析离散变量或定型变量之间是否存在相关。 对于二维表,可进行卡方检验,对于三维表,可作Mentel-Hanszel分层分析。列联表分析还包括配对计数资料的卡方检验、行列均为顺序变量的相关检验。 五、相关分析 研究现象之间是否存在某种依存关系,对具体有依存关系的现象探讨相关方向及相关程度。 1、单相关:两个因素之间的相关关系叫单相关,即研究时只涉及一个自变量和一个因变量; 2、复相关:三个或三个以上因素的相关关系叫复相关,即研究时涉及两个或两个以上的自变量和因变量相关; 3、偏相关:在某一现象与多种现象相关的场合,当假定其他变量不变时,其中两个变量之间的相关关系称为偏相关。 六、方差分析

15个常用EXCEL函数,数据分析新人必备

15个常用EXCEL函数,数据分析新人必备 本文实际涵盖了15个Excel常用函数,但是按照分类只分了十类。 很难说哪十个函数就绝对最常用,但这么多年来人们的经验总结,一些函数总是会重复出现的。 这些函数是最基本的,但应用面却非常广,学会这些基本函数可以让工作事半功倍。 SUM 加法是最基本的数学运算之一。函数SUM就是用来承担这个任务的。SUM的参数可以是单个数字、一组数字,因此SUM的加法运算功能十分强大。 统计一个单元格区域: =sum(A1:A12) 统计多个单元格区域: =sum(A1:A12,B1:B12) AVERAGE 虽然Average是一个统计函数,但使用如此频繁,应在十大中占有一席之位。 我们都对平均数感兴趣。平均分是多少?平均工资是多少?平均高度是多少?看电视的平均小时是多少?

Average参数可以是数字,或者单元格区域。 使用一个单元格区域的语法结构: =AVERAGE(A1:A12) 使用多个单元格区域的语法结构: =AVERAGE(A1:A12,B1:B12) COUNT COUNT函数计算含有数字的单元格的个数。 注意COUNT函数不会将数字相加,而只是计算总共有多少个数字。因此含有10个数字的列表,COUNT函数返回的结果是10,不管这些数字的实际总和是多少。 COUNT函数参数可以是单元格、单元格引用,甚或数字本身。 COUNT函数会忽略非数字的值。例如,如果A1:A10是COUNT函数的参数,但是其中只有两个单元格含有数字,那么COUNT函数返回的值是2。 也可以使用单元格区域作为参数,如: =COUNT(A1:A12) 甚至是多个单元格区域,如: =COUNT(A1:A12,B1:B12) INT和ROUND INT函数和ROUND函数都是将一个数字的小数部分删除,两者的区别是如何删除小数部分。

SQL常用语句及函数方法

1、通常用到的字符串转日期格式 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

R数据分析常用包与函数

【收藏】R数据分析常用包与函数 2016-09-26 R语言作为入门槛较低的解释性编程语言,受到从事数据分析,数据挖掘工作人员的喜爱,在行业排名中一直保持较高的名次(经常排名第一),下面列出了可用于数据分析、挖掘的R包和函数的集合。 1、聚类 常用的包:fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的方法: hclust, pvclust, agnes, diana 基于模型的方法: mclust 基于密度的方法: dbscan 基于画图的方法: plotcluster, plot.hclust 基于验证的方法: cluster.stats 2、分类 常用的包: rpart,party,randomForest,rpartOrdinal,tree,marginTree, maptree,survival 决策树: rpart, ctree 随机森林: cforest, randomForest 回归, Logistic回归, Poisson回归: glm, predict, residuals 生存分析: survfit, survdiff, coxph 3、关联规则与频繁项集 常用的包: arules:支持挖掘频繁项集,最大频繁项集,频繁闭项目集和关联规则 DRM:回归和分类数据的重复关联模型 APRIORI算法,广度RST算法:apriori, drm ECLAT算法:采用等价类,RST深度搜索和集合的交集:eclat 4、序列模式 常用的包:arulesSequences SPADE算法:cSPADE 5、时间序列 常用的包:timsac 时间序列构建函数:ts 成分分解: decomp, decompose, stl, tsr 6、统计 常用的包:Base R, nlme 方差分析: aov, anova 假设检验: t.test, prop.test, anova, aov

相关主题