cognos报表数据项表达式函数的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文档编号CCBBI_PM061110_001
版本号
密级内部资料
cognos报表数据项表达式函数的应用手册文档信息
批复信息
文件控制
目录
1引言............................... 错误!未定义书签。

编写目的................................... 错误!未定义书签。

背景....................................... 错误!未定义书签。

参考资料................................... 错误!未定义书签。

术语定义及说明............................. 错误!未定义书签。

2汇总函数........................... 错误!未定义书签。

aggregate .................................. 错误!未定义书签。

average .................................... 错误!未定义书签。

count ...................................... 错误!未定义书签。

maximum .................................... 错误!未定义书签。

median ..................................... 错误!未定义书签。

minimum .................................... 错误!未定义书签。

moving-average ............................. 错误!未定义书签。

moving-total ............................... 错误!未定义书签。

percentage ................................. 错误!未定义书签。

percentile ............................... 错误!未定义书签。

quantile ................................. 错误!未定义书签。

quartile ................................. 错误!未定义书签。

rank ..................................... 错误!未定义书签。

running-average .......................... 错误!未定义书签。

running-count ............................ 错误!未定义书签。

running-difference ....................... 错误!未定义书签。

running-maximum .......................... 错误!未定义书签。

running-minimum .......................... 错误!未定义书签。

running-total ............................ 错误!未定义书签。

standard-deviation ....................... 错误!未定义书签。

standard-deviation-pop ................... 错误!未定义书签。

total .................................... 错误!未定义书签。

variance ................................. 错误!未定义书签。

variance-pop ............................. 错误!未定义书签。

3业务日期/时间函数.................. 错误!未定义书签。

_add_days .................................. 错误!未定义书签。

_add_months ................................ 错误!未定义书签。

_add_years ................................. 错误!未定义书签。

_age ....................................... 错误!未定义书签。

_day_of_week ............................... 错误!未定义书签。

_day_of_year ............................... 错误!未定义书签。

_days_between .............................. 错误!未定义书签。

_days_to_end_of_month ...................... 错误!未定义书签。

_first_of_month ............................ 错误!未定义书签。

_last_of_month ........................... 错误!未定义书签。

_make_timestamp .......................... 错误!未定义书签。

_months_between .......................... 错误!未定义书签。

_week_of_year ............................ 错误!未定义书签。

_years_between ........................... 错误!未定义书签。

_ymdint_between .......................... 错误!未定义书签。

4块函数............................. 错误!未定义书签。

_firstFromSet .............................. 错误!未定义书签。

_remainderSet .............................. 错误!未定义书签。

5供应商特定函数(Oracle函数)....... 错误!未定义书签。

add_months ................................. 错误!未定义书签。

ascii ...................................... 错误!未定义书签。

char_length ................................ 错误!未定义书签。

chr ........................................ 错误!未定义书签。

concat ..................................... 错误!未定义书签。

decode ..................................... 错误!未定义书签。

dump ....................................... 错误!未定义书签。

greatest ................................... 错误!未定义书签。

initcap .................................... 错误!未定义书签。

instr .................................... 错误!未定义书签。

instrb ................................... 错误!未定义书签。

least .................................... 错误!未定义书签。

length ................................... 错误!未定义书签。

lengthb .................................. 错误!未定义书签。

lpad ..................................... 错误!未定义书签。

ltrim .................................... 错误!未定义书签。

months_between ........................... 错误!未定义书签。

new_time ................................. 错误!未定义书签。

next_day ................................. 错误!未定义书签。

nls_initcap .............................. 错误!未定义书签。

nls_lower ................................ 错误!未定义书签。

nls_upper ................................ 错误!未定义书签。

nvl ...................................... 错误!未定义书签。

replace .................................. 错误!未定义书签。

round .................................... 错误!未定义书签。

rpad ..................................... 错误!未定义书签。

rtrim .................................... 错误!未定义书签。

sign ..................................... 错误!未定义书签。

soundex .................................. 错误!未定义书签。

substr ................................... 错误!未定义书签。

to_char .................................. 错误!未定义书签。

to_date .................................. 错误!未定义书签。

to_number ................................ 错误!未定义书签。

translate ................................ 错误!未定义书签。

trunc .................................... 错误!未定义书签。

trunc .................................... 错误!未定义书签。

vsize .................................... 错误!未定义书签。

{sysdate} ................................ 错误!未定义书签。

{user} ................................... 错误!未定义书签。

6Oracle Cast函数....................... 错误!未定义书签。

cast_varchar ............................... 错误!未定义书签。

cast_timestamp ............................. 错误!未定义书签。

7Oracle数学函数 ....................... 错误!未定义书签。

Log ........................................ 错误!未定义书签。

8Oracle三角函数 ....................... 错误!未定义书签。

acos ....................................... 错误!未定义书签。

asin ....................................... 错误!未定义书签。

atan ....................................... 错误!未定义书签。

atan2 ...................................... 错误!未定义书签。

cos ........................................ 错误!未定义书签。

cosh ....................................... 错误!未定义书签。

sin ........................................ 错误!未定义书签。

sinh ....................................... 错误!未定义书签。

tan ........................................ 错误!未定义书签。

tanh ..................................... 错误!未定义书签。

9通用函数........................... 错误!未定义书签。

_format .................................... 错误!未定义书签。

_round ..................................... 错误!未定义书签。

abs ........................................ 错误!未定义书签。

cast ....................................... 错误!未定义书签。

ceiling .................................... 错误!未定义书签。

character_length ........................... 错误!未定义书签。

coalesce ................................... 错误!未定义书签。

current_date ............................... 错误!未定义书签。

current_time ............................... 错误!未定义书签。

current_timestamp ........................ 错误!未定义书签。

exp ...................................... 错误!未定义书签。

extract .................................. 错误!未定义书签。

floor .................................... 错误!未定义书签。

localtime ................................ 错误!未定义书签。

localtimestamp ........................... 错误!未定义书签。

lower .................................... 错误!未定义书签。

mod ...................................... 错误!未定义书签。

octet_length ............................. 错误!未定义书签。

position ................................. 错误!未定义书签。

power .................................... 错误!未定义书签。

sqrt ..................................... 错误!未定义书签。

substring ................................ 错误!未定义书签。

trim ..................................... 错误!未定义书签。

upper .................................... 错误!未定义书签。

1引言
1.1编写目的
整理cognos的report studio中在数据项表达式中比较常用的函数的应用。

并可供以后需要用到的同事参考。

1.2背景
在开发报表过程中积累的一些经验和总结。

1.3参考资料
Cognos中的帮助文档和oracle的参考文档。

1.4术语定义及说明
2汇总函数
2.1aggregate
用法:
aggregate ( expr [ auto ] )?
aggregate ( expr for [ all | any ] expr { , expr } )
aggregate ( expr for report )?
作用:
根据表达式的聚合类型,返回使用相应的聚合函数计算得出的值。

Example:
aggregate ([本期余额])
根据数据项[本期余额]的聚合类型,返回使用相应的聚合函数计算得出的值。

如果[本期余额]是sum()得到,则返回所有[本期余额]的合计。

2.2average
用法:
average ( [ distinct ] expr [ auto ] )
average ( [ distinct ] expr for [ all | any ] expr { , expr } )?
average ( [ distinct ] expr for report )
作用:
返回选定数据项的平均值。

关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。

Example:
average ( [本期余额] )
返回所有[本期余额]的平均值
2.3count
用法:
count ( [ distinct ] expr [ auto ] )?
count ( [ distinct ] expr for [ all | any ] expr { , expr } )?
count ( [ distinct ] expr for report )?
作用:
返回选定数据项的数量,但不包括NULL值。

关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。

Example:
count( [行号] )
返回所有[行号]总的数量。

2.4maximum
用法:
maximum ( [ distinct ] expr [ auto ] )?
maximum ( [ distinct ] expr for [ all | any ] expr { , expr } )?
maximum ( [ distinct ] expr for report )?
作用:
返回选定数据项的最大值。

关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。

Example:
Maximum ([本期余额])
返回数据项[本期余额]中的最大值。

2.5median
用法:
median ( expr [ auto ] )?
median ( expr for [ all | any ] expr { , expr } )?
median ( expr for report )
作用:
返回选定数据项的中间值。

Example:
median ( [本期余额] )?
返回数据项[本期余额]中的中间值
2.6minimum
用法:
minimum ( [ distinct ] expr [ auto ] )?
minimum ( [ distinct ] expr for [ all | any ] expr { , expr } )?
minimum ( [ distinct ] expr for report )?
作用:
返回选定数据项的最小值。

关键字distinct的作用是,当某个数据项有多个重复的项时,当中只有一个数据项有效。

Example:
minimum ( [本期余额] )
返回数据项[本期余额]中的最小值
2.7moving-average
用法:
moving-average ( numeric_expr , numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
moving-average ( [ distinct ] numeric_expr , numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回指定的一组值在指定行数上的移动平均值。

<for-option>定义函数范围。

at option 定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
moving-average ([本期余额],3)
2.8moving-total
用法:
moving-total ( numeric_expr , numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
moving-total ( [ distinct ] numeric_expr , numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回指定的一组值在指定行数上的移动合计。

<for-option>定义函数范围。

at option 定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
moving-total ([本期余额],3)
2.9percentage
用法:
percentage ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )? percentage ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto?
作用:
返回选定数据项占合计值的百分比。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
percentage ([本期余额])
返回每行[本期余额]的值所占总数的百分比
2.10p ercentile
用法:
percentile ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] ) percentile ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto
作用:
返回在100范围内的某一值,用于表示等于或低于选定数据项的一部分所占百分比。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
percentile ([本期余额])
2.11q uantile
用法:
quantile ( numeric_expr, numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )
quantile ( [ distinct ] numeric_expr, numeric_expr [ <for-option> ] [ prefilter ] ) <for-option> ::= for expr {, expr } | for report | auto
作用:
以指定范围的形式返回值的排名。

它返回整数,以表示排名的任何范围,例如从1(最高)到100(最低)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
quantile ( [本期余额], 4 )?
对应的每一行,返回该行[本期余额]的数量值、[本期余额]数量值的排名以及所有[本期余额]数量值分成4部分后的排名。

2.12q uartile
用法:
quartile ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )? quartile ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )
<for-option> ::= for expr {, expr } | for report | auto
作用:
返回某一值相对于一组值的排名,由1(最高)到4(最低)之间的整数表示。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct 的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
quartile ( [本期余额] )
对应的每一行,返回该行[本期余额]的数量值和[本期余额]的数量值分成四部分后的排名,
2.13r ank
用法:
rank ( expr [sort_order] {, expr [sort_order] } [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
rank ( [ distinct ] expr [sort_order] {, expr [sort_order] } [ <for-option>] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto
作用:
返回选定数据项的排名值。

如果两个或多个行排名相同,则排名值(也称为Olympic排名)顺序中会存在一个缺口。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
rank ([本期余额])
返回[本期余额]数据项的数据量排名值
2.14r unning-average
用法:
running-average ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
running-average ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto
作用:
按行返回一组值的运行平均值(包括当前行)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running-average ([本期余额])
对应的每一行,返回[本期余额]当前行与其前面所有行的平均值。

2.15r unning-count
用法:
running-count ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )? running-count ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回一组值的运行计数(包括当前行)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running-count ([本期余额])
对应的每一行,返回[本期余额]当前行在所有行的位置计数。

2.16r unning-difference
用法:
running-difference ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
running-difference ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] ) <for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回一组值的运行差额,该运行差额为当前行的值与前面行(包括当前行)的值之间的差额。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running-difference ([本期余额])
2.17r unning-maximum
用法:
running-maximum ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
running-maximum ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )? <for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回一组值的最大运行值(包括当前行)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running-maximum ([本期余额])
对应的每一行,返回[本期余额]当前行与前面所有行的最大值
2.18r unning-minimum
用法:
running-minimum ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )?
running-minimum ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )? <for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回一组值的最小运行值(包括当前行)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running- minimum ([本期余额])
对应的每一行,返回[本期余额]当前行与前面所有行的最小值
2.19r unning-total
用法:
running-total ( numeric_expr [ at exp {, expr } ] [ <for-option> ] [ prefilter ] )? running-total ( [ distinct ] numeric_expr [ <for-option> ] [ prefilter ] )?
<for-option> ::= for expr {, expr } | for report | auto?
作用:
按行返回一组值的运行合计(包括当前行)。

<for-option>定义函数范围。

at option定义聚合级别,只能在关系数据源上下文中使用。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
running-total ([本期余额])?
2.20s tandard-deviation
用法:
standard-deviation ( [ distinct ] expr [ auto ] )?
standard-deviation ( [ distinct ] expr for [ all | any ] expr { , expr } )? standard-deviation ( [ distinct ] expr for report )?
作用:
返回选定数据项的标准偏差。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
standard-deviation ([本期余额])?
返回[本期余额]数据项对应的标准偏差
2.21s tandard-deviation-pop
用法:
standard-deviation-pop ( [ distinct ] expr [ auto ] )
standard-deviation-pop ( [ distinct ] expr for [ all | any ] expr { , expr } )? standard-deviation-pop ( [ distinct ] expr for report )?
作用:
计算总体标准偏差并返回总体方差的平方根。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
2.22t otal
用法:
total ( [ distinct ] expr [ auto ] )?
total ( [ distinct ] expr for [ all | any ] expr { , expr } )?
total ( [ distinct ] expr for report )?
作用:
返回选定数据项的合计值。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
total ([本期余额])
返回所有[本期余额]数据项的数据值的总和
2.23v ariance
用法:
variance ( [ distinct ] expr [ auto ] )?
variance ( [ distinct ] expr for [ all | any ] expr { , expr } )?
variance ( [ distinct ] expr for report )
作用:
返回选定数据项的差量。

关键字distinct的作用是,当某个行有多个重复的行时,当中只有一个行有效。

Example:
variance ([本期余额])
返回(SUM([本期余额]2) - SUM([本期余额])2/ COUNT([本期余额])) / (COUNT([本期余额]) - 1)得到的值
2.24v ariance-pop
用法:
variance-pop ( [ distinct ] expr [ auto ] )?
variance-pop ( [ distinct ] expr for [ all | any ] expr { , expr } )?
variance-pop ( [ distinct ] expr for report )?
作用:
返回一组数字除去其中无效数字之后的总体方差。

Example:
variance-pop([本期余额])
返回(SUM([本期余额]2) - SUM([本期余额])2 / COUNT([本期余额])) / COUNT([本期余额])得到的值
3业务日期/时间函数
3.1_add_days
用法:
_add_days ( date_exp, integer_exp )
作用:
依据将integer_exp天添加至date_exp之后所生产的第一个参数,返回日期或日期时间。

Example1:
_add_days ( 2002-04-30 , 1 )
结果为: 2002-05-01
Example2:
_add_days ( 2002-04-30 12:10:, 1 )?
结果为:2002-05-01 12:10:
Example3:
_add_days ( 2002-04-30 00:00:, 1/24 )
结果为:2002-04-30 01:00:
3.2_add_months
用法:
_add_months ( date_exp, integer_exp )?
作用:
依据将integer_exp个月添加至date_exp之后所生产的第一个参数,返回日期或日期时间。

Example 1:
_add_months ( 2002-04-30 , 1 )?
结果为:2002-05-30
Example 2:
_add_months ( 2002-04-30 12:10: , 1 )?
结果为:2002-05-30 12:10:
3.3_add_years
用法:
_add_years ( date_exp, integer_exp )
作用:
依据将integer_exp年添加至date_exp之后所生产的第一个参数,返回日期或日期时间。

Example 1:
_add_years ( 2002-04-30 , 1 )?
结果为:2003-04-30
Example 2:
_add_years ( 2002-04-30 12:10: , 1 )?
结果为:2003-04-30 12:10:
3.4_age
用法:
_age (date_exp )
作用:
返回从当前日期减去date_exp所得的数值。

该值的格式为YYYYMMDD,其中YYYY代表年数,MM代表月数,DD代表天数。

Example:
Today's date=2003-02-05
_age ( 1990-04-30 )
结果为:120906(表示12年,9个月,6天)
3.5_day_of_week
用法:
_day_of_week ( date_exp, integer )
作用:
返回周内某日的对应值(1到7之间),其中1为每周第一天,并由第二个参数(1到7之间,1代表星期一,7代表星期日)指明。

注意,依据ISO 8601标准,每周第一天为星期一,即日值为1。

在北美地区,每周第一天为星期日,即日值为7。

Example:
_day_of_week ( 2003-01-01, 1 )?
结果为:3
3.6_day_of_year
用法:
_day_of_year ( date_exp )
作用:
返回date_exp中的日值在当年中的序数(1到366)。

亦称为Julian日。

Example:
_day_of_year ( 2003-03-01 )?
结果为:61
3.7_days_between
用法:
_days_between ( date_exp1, date_exp2 )?
作用:
返回表示两个日期表达式之间天数的正数或负数。

如果date_exp1< date_exp2,则结果为负数。

Example:
_days_between ( 2002-04-30 , 2002-06-21 )
结果为:-52
3.8_days_to_end_of_month
用法:
_days_to_end_of_month ( date_exp )
作用:?
返回一个数值,指示在日期表达式所提供的月份中剩余的天数。

Example:
_days_to_end_of_month ( 2002-04-20 14:30: )
结果为:10
3.9_first_of_month
用法:
_first_of_month ( date_exp )?
作用:
依据将date_exp转换成同年同月但将日值设为1的日期之后所得的参数,返回日期或日期时间。

Example1:
_first_of_month ( 2002-04-20 )
结果为:2002-04-01
Example2:
_first_of_month ( 2002-04-20 12:10:
结果为:2002-04-01 12:10:
3.10_last_of_month
用法:
_last_of_month ( date_exp )?
作用:
依据date_exp中月份内的最后一天所对应的参数,返回日期或日期时间。

Example1:
_last_of_month ( 2002-01-14 )?
结果为:2002-01-31
Example2:
_last_of_month ( 2002-01-14 12:10: )
结果为:2002-01-31 12:10:
3.11_make_timestamp
用法:
_make_timestamp ( integer_exp1, integer_exp2, integer_exp3 )
作用:
返回由integer_exp1(年)、 integer_exp2(月)及 integer_exp3(日)构成的时间戳。

Example:
_make_timestamp ( 2002 , 01 , 14 )
结果为:2002-01-14 00:00:
3.12_months_between
用法:
_months_between ( date_exp1, date_exp2 )?
作用:
返回表示date_exp1与date_exp2之间月数的正整数或负整数。

如果date_exp1<date_exp2,则返回负数。

Example:
_months_between ( 2002-01-30, 2002-04-03 )
结果为:2
3.13_week_of_year
用法:
_week_of_year ( date_exp )
作用:
依据ISO 8601标准,返回date_exp中的周在当年的序数,其中本年的周1是本年含有星期四的第一周,即1月4日所在的第一周。

Example:
_week_of_year ( 2003-01-01 )?
结果为:1
3.14_years_between
用法:
_years_between ( date_exp1, date_exp2 )
作用:
返回表示date_exp1与date_exp2之间年数的正整数或负整数。

如果date_exp1< date_exp2,则返回负值。

Example:
_years_between ( 2003-01-30, 2001-04-03 )?
结果为:1
3.15_ymdint_between
用法:
_ymdint_between ( date_exp1, date_exp2 )
作用:
返回一个表示日期表达式date_exp1和date_exp2之间差值的数字。

该值的格式为YYYYMMDD,其中YYYY表示年数,MM表示月数,DD表示天数。

Example:
_ymdint_between ( 1990-04-30 , 2003-02-05 )
结果为:120906(代表12年,9个月,6天)
4块函数
4.1_firstFromSet
用法:
_firstFromSet ( set_exp, numeric_exp_max , numeric_exp_overflow )
作用:
返回在集中找到的前几个(不超过numeric_exp_max+numeric_exp_overflow )成员。

如果超过numeric_exp_max+numeric_exp_overflow,则只返回成员的最大数目。

Example:
(由于该函数主要是用在集合的成员中,平时用得比较少,文档也没详细说明用法,所以还没熟悉其用法)
4.2_remainderSet
用法:
_remainderSet (member_exp, set_exp , numeric_exp )
作用:
当set_exp的大小大于numeric_exp时,成员表达式将包括在返回的集中。

Example:
(由于该函数主要是用在集合的成员中,平时用得比较少,文档也没详细说明用法,所以还没熟悉其用法)
5供应商特定函数(Oracle函数)
5.1add_months
用法:
add_months ( date_exp, integer_exp )?
作用:
返回向date_exp添加integer_exp个月之后所得的日期时间。

Example:
add_months ( 2002-04-30 12:10: , 1 )?
结果为:2002-05-30 12:10:
5.2ascii
用法:
ascii ( string_exp )
作用:
返回一个数字,表示string_exp最左边字符的ascii代码值。

Example:
Ascii(‘A’)
结果为:65
5.3char_length
用法:
char_length ( string_exp )?
作用:
返回string_exp包含的字符数。

Example:
char_length('asdfsafsd')
结果为:9
5.4chr
用法:
chr ( integer_exp )
作用:返回integer_exp指定的ASCII代码值所对应的字符。

integer_exp应该在0和255之间。

Example:
chr (65)
结果为:A
5.5concat
用法:
concat ( string_exp1, string_exp2 )?
作用:
返回string_exp1与string_exp2串连之后所形成的字符串。

Example:
concat('asf','cd')
结果为:asfcd
5.6decode
用法:
decode ( expr , search , result [, search , result]... [, default] )
作用:
DECODE逐一比较expr和每一个搜索值。

如果expr等于搜索值,则返回相应结果。

如果未找到匹配值,则返回默认值。

如果默认值已被删除,则返回空值。

Example:
DECODE (warehouse_id, 1, 'Southlake',2, 'San Francisco', 3, 'New Jersey',4,
'Seattle','Non-domestic')
结果为:如果warehouse_id为1,则返回Southlake,如果warehouse_id为2,则返回San Francisco……如果warehouse_id不是1、2、3和4,则返回Non-domestic。

5.7dump
用法:
dump ( expr [ , numeric_exp1 [ , numeric_exp2 [ , numeric_exp3 ] ] ] )
作用:
返回”expr”的内部表示法,采用的格式为numeric_exp1,从numeric_exp3的numeric_exp2位置开始。

其中numeric_exp1为8表示八进制,为10表示十进制,为16表示十六进制,为17表示单字符。

Example:
DUMP('abcde', 17,2,3)
结果为:Typ=96 Len=5: b,c,d
5.8greatest
用法:
greatest ( exp_list )
作用:
返回表达式列表中的最大值。

Example:
GREATEST ('HARRY', 'HARRIOT', 'HAROLD')
结果为:HARRY
5.9initcap
用法:
initcap ( string_exp )
作用:
返回string_exp的转换值,其中每个单词的首字母均采用大写,而其它字母均采用小写。

单词用空格或字母数字之外的其它字符隔开。

Example:
initcap ('the soap')
结果为:The Soap
5.10i nstr
用法:
instr ( string_exp1, string_exp2 [ , integer_exp1 [ , integer_exp2 ] ] )?
作用:
从string_exp1中的第integer_exp1位开始,搜索string_exp1中第integer_exp2次出现string_exp2的位置。

如果integer_exp1为负数,则从string_exp1末端往前搜索。

返回表示string_exp2位置的整数。

Example:
INSTR('CORPORATE FLOOR','OR', 3, 2)
结果为:14
5.11i nstrb
用法:
instrb ( string_exp1, string_exp2 [ , integer_exp1 [ , integer_exp2 ] ] )?
作用:
从string_exp1中的第integer_exp1位开始,搜索string_exp1中第integer_exp2次出现string_exp2的位置。

如果integer_exp1为负数,则从string_exp1末端往前搜索。

返回的结果表示发现搜索项的位置(字节编号)。

Example:
INSTRB('CORPORATE FLOOR','OR',5,2)
结果为:27
用法:
least ( exp_list )?
作用:
返回表达式列表中的最小值
Example:
LEAST('HARRY','HARRIOT','HAROLD')
结果为:HAROLD
5.13l ength
用法:
length ( string_exp )?
作用:
返回string_exp包含的字符数。

Example:
LENGTH('CANDIDE')
结果为:7
5.14l engthb
用法:
lengthb ( string_exp )
作用:
返回string_exp包含的字节数。

Example:
LENGTHB ('CANDIDE')
结果为:
14
5.15l pad
用法:
lpad ( string_exp1, integer_exp [ , string_exp2 ] )
作用:
返回通过添加string_exp2而达到integer_exp 长度的string_exp1。

如果string_exp1比integer_exp长,则返回string_exp1的适当部分
Example:
LPAD('Page 1',15,'*.')
结果为:*.*.*.*.*Page 1
用法:
ltrim ( string_exp1 [ , string_exp2 ] )?
作用:
返回string_exp1,但该字符串中第一个未出现在string_exp2中的字符之前的所有字符已被删除。

Example:
LTRIM('xyxXxyLAST WORD','xy')
结果为:XxyLAST WORD
5.17m onths_between
用法:
months_between ( date_exp1, date_exp2 )
作用:
返回date_exp1到date_exp2之间的月数。

如果date_exp1晚于date_exp2,则结果为负数。

如果两者的日期部分和时间部分不同,则被忽略,即不一定取足月,除非date_exp1和date_exp2是每月的最好一天。

Example:
MONTHS_BETWEEN(TO_DATE('02-02-1995','MM-DD-YYYY'),TO_DATE('01-01-1995','MM-DD-Y YYY') )
结果为:
5.18n ew_time
用法:
new_time ( datetime_exp, old_tz, new_tz )
作用:
返回'old_tz'时区内的'datetime'在'new_tz'时区中对应的日期时间。

'Old_tz'和'new_tz' 可为以下各项之一:'AST', 'ADT', 'BST', 'BDT', 'CST', 'CDT', 'EST', 'EDT', 'HST', 'HDT', 'MST', 'MDT', 'NST', 'PST', 'PDT', 'YST' 或 'YDT'。

Example:
NEW_TIME(TO_DATE('11-10-99 01:23:45', 'MM-DD-YY HH24:MI:SS'),'AST', 'PST')
结果为:2099-11-9 21:23:45
UTC/GMT +4
5.19n ext_day
用法:
next_day ( datetime_exp, string_exp )?
返回在datetime_exp之后第一次出现由string_exp命名的工作日的日期时间。

返回的值与datetime_exp具有相同的小时、分、秒。

Example:
NEXT_DAY('02-FEB-2001','TUESDAY')
结果为:06-FEB-2001
5.20n ls_initcap
用法:
nls_initcap ( string_exp1 [ , string_exp2 ] )
作用:
返回?string_exp1的转换值,其中每个单词的首字母均采用大写,而其它字母均采用小写。

单词用空格或字母数字之外的其它字符隔开。

string_exp2指定排序顺序。

Example:
NLS_INITCAP('ijsland')
结果为:Ijsland
5.21n ls_lower
用法:
nls_lower ( string_exp1 [ , string_exp2 ] )
作用:
返回所有字母均转换成小写的string_exp1。

string_exp2指定排序顺序。

Example:
NLS_LOWER('CITTA')
结果为:citta
5.22n ls_upper
用法:
nls_upper ( string_exp1 [ , string_exp2 ] )
作用:
返回所有字母均转换成大写的string_exp1。

string_exp2指定排序顺序。

Example:
nls_upper('citta')
结果为:CITTA
5.23n vl
用法:
nvl ( exp, constant )?
如果exp为空(遗漏),则返回常数。

如果exp不为空,在返回exp。

对于numeric_exp、string_exp、date_exp和 time_exp有效。

Example:
Nvl(1,0)结果为:1
Nvl(null,0)结果为:0
5.24r eplace
用法:
replace ( string_exp1, string_exp2 [ , string_exp3 ] )
作用:
使用string_exp3替换string_exp1中出现的所有string_exp2。

若未指定string_exp3,则用零替换(即删除所有出现的string_exp2)。


Example:
REPLACE('JACK and JUE','J','BL')
结果为:BLACK and BLUE
5.25r ound
用法:
round ( numeric_exp [ , integer_exp ] )
作用:
返回numeric_exp在精确到小数点右侧integer_exp位之后的取整值。

如果integer_exp 为负数,则numeric_exp取整为小数点左侧absolute(integer_exp)位的近似值(absolute (integer_exp)表示integer_exp的绝对值)。

例如,round (125,-1)将取整为130。

Example:
ROUND,1)
结果为:
5.26r pad
用法:
rpad ( string_exp1, integer_exp [ , string_exp2 ] )?
作用:
返回通过在右侧添加string_exp2而达到integer_exp 长度的string_exp1。

如果string_exp1比integer_exp长,则返回string_exp1的适当部分。

如果未指定string_exp2,则使用空格。

Example:
RPAD('MORRISON',12,'ab')
结果为:MORRISONabab
5.27r trim
用法:
rtrim ( string_exp1 [ , string_exp2 ] )
作用:
返回string_exp1,但该字符串中最后一个未出现在string_exp2中的字符之后的所有字符已被删除。

例如rtrim (‘ABxYxyx’,’xy’)则返回”ABxY”。

如果未指定string_exp2,则会删除末端的所有空格字符。

Example:
RTRIM('BROWNINGyxXxy','xy')
结果为:BROWNINGyxX
5.28s ign
用法:
sign ( numeric_exp )
作用:
返回numeric_exp的符号指示符:如果numeric_exp是正数,则为+1;如果是零,则为0;如果是负数,则为-1。

Example:
SIGN(-15)
结果为:-1
5.29s oundex
用法:
soundex ( string_exp )?
作用:
返回包含string_exp的语音学表示法的字符串。

Example:
SOUNDEX(‘Smith’)= SOUNDEX('SMYTHE')
5.30s ubstr
用法:
substr ( string_exp, integer_exp1 [ , integer_exp2 ] )
作用:
返回string_exp中从位置integer_exp1开始的子字串。

string_exp中的第一个字符处在位置1。

integer_exp2可用于选择较少的字符,根据默认设置,它将选择指定位置之后的所有字符,直到字符串末尾。

Example:
SUBSTR('ABCDEFG',3,4)
结果为:CDEF
5.31s ubstrb
用法:
substrb ( string_exp, numeric_exp1 [ , numeric_exp2 ] )?
作用:
与substr函数相同,但参数用字节表示(而非字符)。

Example:
SUBSTRB('ABCDEFG',5,
结果为:CD
5.32t o_char
用法:
to_char ( exp [ , string_exp ] )?
作用:
返回string_exp格式的exp的字符串表示法。

exp可为日期值或数值。

Example:
TO_CHAR(-10000,'L99G999D99MI')
结果为:¥10,
5.33t o_date
用法:
to_date ( string_exp1 [ , string_exp2 [ , string_exp3 ] ] )?
作用:
采用string_exp2指定的格式将string_exp1转换为日期时间值。

string_exp3指定语言等格式要素。

Example:
to_date('','yyyy-mm-dd')
结果为:2006-11-8
5.34t o_number
用法:
to_number ( string_exp1, string_exp2, string_exp3 )
作用:
使用string_exp2指定的格式将string_exp1转换为数值。

string_exp3指定币种信息等格式要素。

Example:
TO_NUMBER('-AusDollars100','L9G999D99','NLS_NUMERIC_CHARACTERS='',.''NLS_CURREN CY= ''AusDollars''')
结果为:-100
5.35t ranslate
用法:
translate ( string_exp1, string_exp2, string_exp3 )?
作用:
返回string_exp1,其中string_exp2中的每一字符在其出现位置上均由string_exp3中的对应字符替换。

Example:
TRANSLATE('2KRA229','09ABCDEFGHIJKLMNOPQRSTUVWXYZ','090')
结果为:20229
5.36t runc
用法:
trunc ( date_exp, string_exp )?
作用:
使用string_exp指定的格式截取date_exp。

例如,如果string_exp为”YEAR”,则date_exp 将被截取至该年份的第一天。

Example:
TRUNC(TO_DATE('2006-11-08','yyyy-mm-dd'), 'mm')
结果为:2006-11-1
5.37t runc
用法:
trunc ( numeric_exp1, numeric_exp2 )
作用:
将numeric_exp2作为精度来截取numeric_exp1中的数位。

Example:
TRUNC,1) 结果为:
TRUNC,-1) 结果为:10
5.38v size
用法:
vsize ( exp )
作用:
返回”exp”内部表示法的字节数。

”exp”应为字符串表达式。

相关文档
最新文档