常用函数 A-C D-G H-L M-Q R-Z 三角函数
SQL-99 标量 abs ( 数字型表达式 ) 返回“数字型表达式”的绝对值。负值将作为正值返回。 示例:abs ( 15 ) 结果:15 示例:abs ( -15 ) 结果:15 bit_length bit_length ( string_expression ) 返回“字符串型表达式”包含的位数。 cast ( 表达式 , 数据类型规范 ) 将“表达式”转换为指定的数据类型。某些数据类型允许指定长度和精度。确保目标的类型和大小适当。可将以下各项用于“指定数据类型”:字符、可变字符、字符型、数字、小数、整数、大整数、小整数、实数、浮点、日期、时间、时间戳记、带有时区的时间、带有时区的时间戳记以及时间间隔。当类型强制转换为时间间隔类型时,必须指定以下其中一种时间间隔限定符:对于“年到月”时间间隔数据类型,指定年、月或年到月;对于“日到秒”时间间隔数据类型,指定日、小时、分、秒、日到小时、日到分、日到秒、小时到分、小时到秒或分到秒。 注: 将时间戳记类型的值转换为日期类型时,会忽略时间戳记值的时间部分。 将时间戳记类型的值转换为时间类型时,会忽略时间戳记的日期部分。 将日期类型的值转换为时间戳记类型时,会将时间戳记的时间部分设置为零。 将时间类型的值转换为时间戳记类型时,会将日期部分设置为当前系统日期。 将某种时间间隔数据类型转换为其他类型是无效的(例如,因为某月的天数是不一样的)。请注意,您仅可以指定前导限定符的位数,如 YEAR(4) TO MONTH、DAY(5)。如果目标类型和大小与源类型和大小不匹配,将会报告错误。 示例:cast ( '123' , integer ) 结果:123 示例:cast ( 12345 , varchar ( 10 ) ) 结果:包含 12345 的字符串 char_length ( 字符串型表达式 ) 返回“字符串型表达式”中包含的逻辑字符数。在某些东亚语言环境中,逻辑字符数可能与字节数不同。 示例:char_length ( 'Canada' ) 结果:6 character_length ( 字符串型表达式 ) 返回“字符串型表达式”中的字符数。 示例:character_length ( 'Canada' ) 结果:6 current_date current_date 返回一个日期值,代表运行数据库软件的计算机上的当前日期。 例如:current_date 结果:2003-03-04 current_time current_time 返回一个带有时区值的时间,表示运行数据库软件的计算机的当前时间 (如果数据库支持此功能)。否则,它表示运行 IBM® Cognos® BI 软件的计算机的当前时间。 例如:current_time 结果:16:33:11.354+05:00 current_timestamp current_timestamp 返回一个带有时区值的日期时间,表示运行数据库软件的计算机的当前时间 (如果数据库支持此功能)。否则,它表示运行 IBM® Cognos® BI 软件的计算机的当前时间。 例如:current_timestamp 结果:2003-03-03 16:40:15.535+05:00 localtime localtime 返回一个时间值,表示运行数据库软件的计算机的当前时间。 示例:localtime 结果:16:33:11 localtimestamp localtimestamp 返回一个日期时间值,表示运行数据库软件的计算机的当前时间戳记。 示例:localtimestamp 结果:2003-03-03 16:40:15 extract ( 日期部分 , 日期时间型表达式 ) 返回表示“datetime_expression”中日期部分(年、月、日、小时、分钟、秒、纪元)的值的整数。 示例:extract ( year , 2003-03-03 16:40:15.535 ) 结果:2003 示例:extract ( hour , 2003-03-03 16:40:15.535 ) 结果:16 示例:extract ( epoch , 2014-11-23 ) 结果:1416718800 lower ( 字符串型表达式 ) 返回已将所有大写字符转换为小写字符的“字符串型表达式”。 示例:lower ( 'ABCDEF' ) 结果:abcdef mod ( 整数型表达式1, 整数型表达式 2 ) 返回“整数表达式1”除以“整数表达式2”的余数(模数)。“整数型表达式2”不能为零,否则会出现异常情况。 示例:mod ( 20 , 3 ) 结果:2 occurrences_regex ( regex_expression , string_expression [ , integer_expression [ , flags_expression ]] ) 返回表示正则表达式“regex_expression”在“string_expression”中出现次数的整数值。搜索从位置“integer_expression”(其默认值为 1)处开始。用于设置正则表达式解释选项的标志由“flags_expression”指定。单个字母用于定义标志,有效值为“s”、“m”、“i”和“x”。 示例:occurrences_regex ( '.er' , 'Flicker Lantern') 结果:2 octet_length ( 字符串型表达式 ) 返回“字符串型表达式”中的字节数。 示例:octet_length ( 'ABCDEF' ) 结果:6 示例:octet_length ( '' ) 结果:0 position ( 字符串型表达式1 , 字符串型表达式2 ) 返回表示“字符串型表达式1”在“字符串型表达式2”中起始位置的整数值,或者在找不到“字符串型表达式1”时返回 0。 示例:position ( 'C' , 'ABCDEF' ) 结果:3 示例:position ( 'H' , 'ABCDEF' ) 结果:0 position_regex ([ start|after ]  regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) 返回表示“string_expression”中与正则表达式“regex_expression”匹配的子字符串的开始或结束位置的整数值。搜索从位置“integer_expression1”(其默认值为 1)处开始。要搜索的模式的实例位置由“integer_expression2”(其默认值为 1)指定。返回选项由第一个自变量指定,用于指定与出现位置相关所返回的内容。如果指定“start”,那么将返回该实例的第一个字符的位置。如果指定“after”,那么将返回该实例后的字符的位置。如果未指定返回选项,即隐含使用“start”。用于设置正则表达式解释选项的标志由“flags_expression”指定。单个字母用于定义标志,有效值为“s”、“m”、“i”和“x”。 示例:position_regex ( '.er' , 'Flicker Lantern') 结果:5 示例:position_regex ( after '.er' , 'Flicker Lantern' ) 结果:8 示例:position_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) 结果:12 trim ( [ [ 尾随|前导|尾随和前导 ] [ 匹配字符表达式 ] , ] 字符串型表达式 ) 返回截去前导和尾随空格的“字符串型表达式”,或者返回截去“匹配字符表达式”指定的某些字符的“字符串型表达式”。如果未指定第一个参数,那么默认为“尾随和前导”,如果未指定第二个参数,那么默认为空白。 示例:trim ( 尾随 'A' , 'ABCDEFA' ) 结果:ABCDEF 示例:trim ( 尾随和前导 , ' ABCDEF ' ) 结果:ABCDEF upper ( 字符串型表达式 ) 返回已将所有小写字符转换为大写字符的“字符串型表达式”。 示例:upper ( 'abcdef' ) 结果:ABCDEF user user 在运行时为数据库管理器返回一个授权标识。 nullif nullif ( 表达式1, 表达式2 ) 如果“表达式1”等于“表达式2”,那么返回空值,否则返回“表达式1”。 coalesce ( 表达式列表 ) 返回第一个非空值自变量(或者如果所有自变量都为空值,那么返回空值)。“表达式列表”中需要两个或更多自变量。 coalesce ( [单价], [销售单价] ) 结果:返回单价,如果单价为空值,那么返回销售单价。 coalesce ( 表达式列表 ) 返回第一个非空值自变量(或者如果所有自变量都为空值,那么返回空值)。“表达式列表”中需要一个或更多自变量。 coalesce ( [单价], [销售单价] ) 结果:返回单价,如果单价为空值,那么返回销售单价。 ceil ( 数字型表达式 ) 返回大于或等于“数字型表达式”的最小整数。 ceiling ( 数字型表达式 ) 返回大于或等于“数字型表达式”的最小整数。 示例:ceiling ( 4.22 ) 结果:5 示例:ceiling ( -1.23 ) 结果:-1 ln ( 数字型表达式 ) 返回“数字型表达式”的自然对数。 示例:ln ( 4 ) 结果:1.38629 exp ( 数字型表达式 ) 返回“e”的“数字型表达式”次幂。常数“e”是自然对数的底数。 示例:exp ( 2 ) 结果:7.389056 period ( datetime_expression1 , datetime_expression2 ) 构造起始点为“datetime_expression1”且结束点为“datetime_expression2”的时间段值。起始点和结束点的数据类型必须相同,并且可以为 date、time 或 dateTime 中的一种。时间段值可以在时间段判定中使用。 示例:period ( 2003-03-03 , 2003-10-03 ) 示例:period ( 12:00:00 , 23:59:59 ) 示例:period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) 示例:period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( 数字型表达式 1 , 数字型表达式 2 ) 返回“数字型表达式1”的“数字型表达式2”次幂。如果“数字型表达式1”是负数,那么“数字型表达式2”的结果必须为整数值。 示例:power ( 3 , 2 ) 结果:9 random ( [ integer_expression ] ) 通过使用可选“整数型表达式”作为种子值,返回在 0 与 1 之间的随机浮点值。 _round ( numeric_expression , integer_expression ) 返回“数字型表达式”四舍五入为小数点后“整数型表达式”位的近似值。注意:“整数型表达式”必须是非负整数。会在应用数据格式化前进行四舍五入。 示例:_round ( 1220.42369, 2 ) 结果:1220.42 行构造方法表示将值集合组织为数据行。它用于条件表达式(例如,IF-THEN-ELSE)和过滤器表达式(例如,IN 子句)。 row ( 表达式列表 ) 示例: if(row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') 结果:如果零售商名称为“ActiForme”,那么返回“A”,并且订购方法代码为 4。否则,将返回值“B”。 示例: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end 结果:如果零售商名称为“Advanced ClimbingLtd”, 那么返回 1,并且订购方法代码为 3。如果零售商名称为“ActiForme”,那么返回 2,并且订购方法代码为 5。否则,将返回值 3。 示例:row( [OrderMethodCode], [Year] ) in ( [Query].[OMC], [Query].[YR] ) 结果:在以下两种情况下过滤已返回的数据: 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( numeric_expression ) 返回“numeric_expression”的平方根。“Numeric_expression”必须为非负值。 示例:sqrt ( 9 ) 结果:3 substring ( 字符串型表达式 , 整数型表达式1 [ , 整数型表达式2 ] ) 返回“字符串型表达式”的子字符串,该子字符串的起始位置是“整数型表达式1”,且包含“整数型表达式2”个字符,或者到“字符串型表达式”的末尾 (如果忽略“整数型表达式2”)。“字符串型表达式”中的第一个字符在位置 1。 示例:substring ( 'abcdefg' , 3 , 2 ) 结果:cd substring_regex ( regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) 返回“string_expression”中与正则表达式“regex_expression”匹配的子字符串。搜索从位置“integer_expression1”(其默认值为 1)处开始。要搜索的模式的实例位置由“integer_expression2”(其默认值为 1)指定。用于设置正则表达式解释选项的标志由“flags_expression”指定。单个字母用于定义标志,有效值为“s”、“m”、“i”和“x”。 示例:substring_regex ( '.er' , 'Flicker Lantern') 结果:ker 示例:substring_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) 结果:ter floor ( 数字型表达式 ) 返回小于或等于“数字型表达式”的最大整数。 示例:floor ( 3.22 ) 结果:3 示例:floor ( -1.23 ) 结果:-2 width-bucket ( 数字型表达式 ,  最小值 ,  最大值 ,  时间段数 ) 对于给定表达式,此函数将返回在求值后此表达式的值将落在其中的时间段数。 示例:width-bucket ( 数量 ,  100 ,  5000 ,  10 ) 结果:对于每一行,返回当前“数量”值的时间段数(从 0 到 11)。 Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( 数字型表达式 ) 此三角函数返回参数的正弦值,其中参数是以弧度表示的角度。 示例:sin ( 0.1667 * 3.1415 ) 结果:0.5 cos ( 数字型表达式 ) 此三角函数返回参数的余弦值,其中参数是以弧度表示的角度。 示例:cos ( 0.3333* 3.1415 ) 结果:0.5 tan ( 数字型表达式 ) 此三角函数返回参数的正切值,其中参数是以弧度表示的角度。 示例:tan ( 0.25 * 3.1415 ) 结果:1 arccos ( 数字型表达式 ) 此反三角函数返回参数的反余弦值,其中参数在 -1 到 1 的范围内,结果是以弧度表示的值。 示例:arccos ( -1 ) 结果:3.1415 arcsin ( 数字型表达式 ) 此反三角函数返回参数的反正弦值,其中参数在 -1 到 1 的范围内,结果是以弧度表示的值。 示例:arcsin ( 0 ) 结果:3.1415 此反三角函数返回参数的反正切值,其中参数在 -1 到 1 的范围内,结果是以弧度表示的值。 arctan ( 数字型表达式 ) 示例:arctan ( 0 ) 结果:3.1415 coshyp ( 数字型表达式 ) 此三角函数返回参数的双曲余弦值,其中参数是以弧度表示的角度。 示例:coshyp ( 0 ) 结果:1 sinhyp ( 数字型表达式 ) 此三角函数返回参数的双曲正弦值,其中参数是以弧度表示的角度。 示例:sinhyp ( 0 ) 结果:0 tanhyp ( 数字型表达式 ) 此三角函数返回参数的双曲正切值,其中参数是以弧度表示的角度。 示例:tanhyp ( 0 ) 结果:0
SQL-99 OLAP 扩展函数 cube cube ( 分组列参考列表 ) 这是一个“分组方式”子句,它的计算结果是一个分组集列表,其中包含“分组列参考列表”中分组列的所有可能组合的分组集。 rollup rollup ( 分组列参考列表 ) 这是一个“分组方式”子句,它通过从右侧逐个删除要素而得出一个分组集列表,其中包含“分组列参考列表”的每个正常子列表的分组集。 grouping sets grouping sets ( 分组集列表 ) 这是一个“分组方式”子句,指定多个要分组的集。 rank rank () 计算窗口分区中行的秩,其中行 x 的秩定义为 1 加上高于 x 的行数,而不是与 x 同等级的行数。 dense_rank dense_rank () 计算窗口分区中行的密集秩,其中行 x 的密集秩定义为高于并包含 x 的独特行数。 percent_rank percent_rank () 计算窗口分区中行的百分秩,其中行 x 的百分秩定义为 (xy - 1) / (ab - 1),其中 xy 是 x 的秩,ab 是窗口分区中的行数。 row_number row_number () 计算窗口分区中的行序列号,从表示第一行的 1 开始。 ntile ntile ( numeric_expression ) 将整理的数据集分成“数字型表达式”个存储桶,并为每行分配相应的桶编号。