Sybase IQ常用函数大全–数值函数

查询索引:

  1. ABS 函数:返回数字表达式的绝对值<>。
  2. CEIL 函数:返回大于或等于指定表达式的最小整数。CEIL 是 CEILING 的同义词。
  3. CEILING 函数:返回数字的上限(不小于的最小整数)。CEIL 是 CEILING 的同义词。
  4. FLOOR 函数:返回数字的下限(不大于的最大整数)。
  5. MOD 函数:返回一个整数除以另一个整数之后产生的余数。
  6. POWER 函数:以一个数字为底数另一个数字为指数计算乘方值。无详解。
  7. RAND 函数:返回一个 DOUBLE 精度的随机数字 x,其中 0 <= x <1,使用可选种子。
  8. REMAINDER 函数:返回一个整数除以另一个整数之后产生的余数。
  9. ROUND 函数:将 舍入到小数点后指定的第 位数。
  10. SIGN 函数:返回数字的符号。

1. ABS 函数

返回数字表达式的绝对值<>。

语法:
ABS ( <numeric-expression> )
解析:

参数

说明

numeric-expression

要返回绝对值的数字。

示例:
-- 以下语句返回值 66:
SELECT ABS( -66 ) FROM iq_dummy

2. CEIL 函数

返回大于或等于指定表达式的最小整数。CEIL 是 CEILING 的同义词。

语法:
CEIL ( <numeric-expression> )
解析:

参数

说明

expression

数据类型为精确数值、近似数值、货币或任何可隐式转换为这些类型之一的类型的列、变量或表达式。对于其它数据类型,CEIL 会产生错误。返回值与所提供的值属于相同的数据类型。

  • 对于给定表达式,CEIL 函数将采用一个参数。例如,CEIL (-123.45) 返回 -123CEIL (123.45) 返回 124

3. CEILING 函数

返回数字的上限(不小于的最小整数)。CEIL 是 CEILING 的同义词。

语法:
CEILING ( <numeric-expression> )
解析:

参数

说明

numeric-expression

要计算其上限的数字。

示例:
-- 以下语句返回值 60.00000:
SELECT CEILING( 59.84567 ) FROM iq_dummy

-- 以下语句返回值 123:
SELECT CEILING( 123 ) FROM iq_dummy

-- 以下语句返回值 124.00:
SELECT CEILING( 123.45 ) FROM iq_dummy

-- 以下语句返回值 -123.00:
SELECT CEILING( -123.45 ) FROM iq_dummy

4. FLOOR 函数

返回数字的下限(不大于的最大整数)。

语法:
FLOOR ( <numeric-expression> )
解析:

参数

说明

numeric-expression

数字,通常是浮点数。

示例:
-- 以下语句返回值 123.00:
SELECT FLOOR ( 123 ) FROM iq_dummy

-- 以下语句返回值 123:
SELECT FLOOR ( 123.45 ) FROM iq_dummy

-- 以下语句返回值 -124.00。
SELECT FLOOR ( -123.45 ) FROM iq_dummy

5. MOD 函数

返回一个整数除以另一个整数之后产生的余数。

语法:
MOD ( <dividend>, <divisor> )
解析:

参数

说明

dividend

被除数,即除法的分子。

divisor

除数,即除法的分母。

  • 为负数时结果为负数或零。 的符号没有影响。
示例:
-- 以下语句返回值 2:
SELECT MOD( 5, 3 ) FROM iq_dummy

6. 略

7. RAND 函数

返回一个 DOUBLE 精度的随机数字 x,其中 0 <= x <1,使用可选种子。

语法:
RAND ( [< integer-expression> ] )
解析:

参数

说明

integer-expression

用于创建随机数字的可选种子。此参数用于创建可重复的随机数字序列。

  • 如果在只包含 IQ 存储中的表的查询中使用 FROM 子句以及某个参数调用 RAND,则该函数将返回任意可重复值。
  • 如果不调用任何参数,则 RAND 是非确定性函数。连续调用 RAND 可能会返回不同的值。查询优化程序不会对 RAND 函数的结果进行高速缓存。
  • 注意
  • 由 RAND 返回的值因您是否使用 FROM 子句以及引用的表是在 SYSTEM 中创建还是在 IQ 存储中创建而异。
示例:
-- 以下语句返回某个表的 5% 的样本:
SELECT AVG(table1.number_of_cars), AVG(table1.number_of_tvs)FROM table1 WHERE RAND(ROWID(table1)) < .05 and table1.income < 50000;

-- 以下语句返回近似值 941392926249216914:
SELECT RAND( 4 ) FROM iq_dummy

8. REMAINDER 函数

返回一个整数除以另一个整数之后产生的余数。

语法:
REMAINDER ( <dividend>, <divisor> )
解析:

参数

说明

dividend

被除数,即除法的分子。

divisor

除数,即除法的分母。

  • REMAINDER 与 MOD 函数相同。
示例:
-- 以下语句返回值 2:
SELECT REMAINDER( 5, 3 ) FROM iq_dummy

9. ROUND 函数

将 舍入到小数点后指定的第 位数。

语法:
ROUND ( <numeric-expression>, <integer-expression> )
解析:

参数

说明

numeric-expression

传递给函数的待舍入数字。

integer-expression

正整数指定小数点右边舍入到的有效位数。负数表达式指定小数点左边舍入到的有效位数。

  • 如果将 ROUND_TO_EVEN 数据库选项设置为 ON,ROUND 函数会对 SAP IQ 表中的数据舍入到最接近 integer-expression 的偶数,以便与 SAP SQL Anywhere 表数据的行为匹配。当此选项设置为 OFF 时,ROUND 函数会对 SAP IQ 进行四舍五入。
示例:
-- 以下语句返回值 123.200:
SELECT ROUND( 123.234, 1 ) FROM iq_dummy

下表中显示了 ROUND 函数的其它结果:


ROUND(值)

123.4567

round (a.n,4)

123.4570

round (a.n,3)

123.4600

round (a.n,2)

123.5000

round (a.n,1)

123.0000

round (a.n, 0)

120.0000

round (a.n, -1)

100.0000

round (a.n, -2)

0.0000

round (a.n, -3)

在以下示例中,ROUND_TO_EVEN 设置影响返回值。

ROUND(值)

ROUND_TO_EVEN ON

ROUND_TO_EVEN OFF

注释

ROUND (convert (double, 123.45001), 1)

123.5

123.5

0.05001 大于 0.1 的一半

ROUND (convert (double, 123.45000), 1)

123.4

123.5

0.0500 是 0.1 的一半

10. SIGN 函数

返回数字的符号。

语法:
SIGN ( <numeric-expression> )
解析:

参数

说明

numeric-expression

要返回其符号的数字

  • 对于负数,SIGN 返回 -1。
  • 对于零,SIGN 返回 0。
  • 对于正数,SIGN 返回 1。
示例:
以下语句返回值 -1:
SELECT SIGN( -550 ) FROM iq_dummy