Sybase IQ常用函数大全–数值函数
查询索引:
- ABS 函数:返回数字表达式的绝对值<>。
- CEIL 函数:返回大于或等于指定表达式的最小整数。CEIL 是 CEILING 的同义词。
- CEILING 函数:返回数字的上限(不小于的最小整数)。CEIL 是 CEILING 的同义词。
- FLOOR 函数:返回数字的下限(不大于的最大整数)。
- MOD 函数:返回一个整数除以另一个整数之后产生的余数。
- POWER 函数:以一个数字为底数另一个数字为指数计算乘方值。无详解。
- RAND 函数:返回一个 DOUBLE 精度的随机数字 x,其中 0 <= x <1,使用可选种子。
- REMAINDER 函数:返回一个整数除以另一个整数之后产生的余数。
- ROUND 函数:将 舍入到小数点后指定的第 位数。
- 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)
返回-123
。CEIL (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