SQL 数值函数

由 andyguan007 创建, 最后一次修改 2016-12-15

SQL数字函数主要用于数值操作和/或数学计算。 下表详述了数字函数:

返回数值表达式的反正弦值。 如果值不在-1到1的范围内,则返回NULL
NameDescription
ABS()返回数值表达式的绝对值
ACOS()返回数值表达式的反余弦值。 如果值不在-1到1的范围内,则返回NULL
ASIN() 返回数值表达式的反正弦值。 如果值不在-1到1的范围内,则返回NULL
ATAN()返回数值表达式的反正切
ATAN2()返回传递给它的两个变量的反正切。
BIT_AND()返回表达式中的按位AND所有位。
BIT_COUNT()返回传递给它的二进制值的字符串表示形式
BIT_OR()返回传递的表达式中所有位的按位或。
CEIL()返回不小于传递的数字表达式的最小整数值
CEILING()返回不小于传递的数字表达式的最小整数值
CONV()将数值表达式从一个基数转换为另一个基数。
COS()返回传递的数值表达式的余弦值。 数值表达式应以弧度表示。
COT()返回传递的数值表达式的余切。
DEGREES()返回从弧度转换为度的数值表达式。
EXP()返回自然对数(e)的底数增加到通过数字表达式的权力。
FLOOR()返回不大于传递的数字表达式的最大整数值。
FORMAT()返回四舍五入到小数位数的数字表达式。
GREATEST()返回输入表达式的最大值。
INTERVAL()取多个表达式exp1,exp2和exp3等等,如果exp1小于exp2则返回0,如果exp1小于exp3则返回1,以此类推。
LEAST()给定两个或更多个时返回最小值输入。
LOG()返回传递的数字表达式的自然对数。
LOG10()返回传递的数字表达式的以10为底的对数。
MOD()通过使用另一个表达式返回一个表达式的余数。
OCT()返回传递的数字表达式的八进制值的字符串表示形式。 如果传递的值为NULL,则返回NULL。
PI()返回pi的值
POW()返回一个表达式的值增加到另一个表达式的权力
POWER()返回一个表达式的值增加到另一个表达式的权力
RADIANS()返回从度转换为弧度的传递表达式的值。
ROUND()返回四舍五入为整数的数值表达式。 可用于将表达式舍入为多个小数点
SIN()返回以弧度给出的数值表达式的正弦值。
SQRT()返回数值表达式的非负平方根。
STD()返回数值表达式的标准偏差。
STDDEV()返回数值表达式的标准偏差。
TAN()返回以弧度表示的数值表达式的正切值。
TRUNCATE()返回截断为exp2小数位的数字exp1。 如果exp2为0,则结果将不具有小数点。

ABS(X)

ABS()函数返回X的绝对值。请参考以下示例:

SQL> SELECT ABS(2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT ABS(-2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ACOS(X)

此函数返回X的反余弦值。X的值必须-1或者1之间,否则将返回NULL之间。请参考下面的例子:

SQL> SELECT ACOS(1);
+---------------------------------------------------------+
| ACOS(1)                                                 |
+---------------------------------------------------------+
| 0.000000                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ASIN(X)

ASIN()函数返回X的反正弦值。X的值必须在-1到1的范围内,否则将返回NULL:

SQL> SELECT ASIN(1);
+---------------------------------------------------------+
| ASIN(1)                                                 |
+---------------------------------------------------------+
| 1.5707963267949                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN(X)

此函数返回X的反正切:

SQL> SELECT ATAN(1);
+---------------------------------------------------------+
| ATAN(1)                                                 |
+---------------------------------------------------------+
| 0.78539816339745                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN2(Y,X)

此函数返回两个参数的反正切:X和Y。它类似于Y / X的反正切,除了两者的符号用于查找结果的象限:

SQL> SELECT ATAN2(3,6);
+---------------------------------------------------------+
| ATAN2(3,6)                                              |
+---------------------------------------------------------+
| 0.46364760900081                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_AND(expression

BIT_AND函数返回表达式中所有位的按位AND。 基本前提是,如果两个相应的位相同,则按位与操作将返回1,而如果它们不同,则按位与操作将返回0.该函数本身返回一个64位整数值。 如果没有匹配项,则它将返回18446744073709551615.以下示例在由汽车的MAKER分组的PRICE列上执行BIT_AND函数:

SQL> SELECT 
          MAKER, BIT_AND(PRICE) BITS
          FROM CARS GROUP BY MAKER
+---------------------------------------------------------+
|MAKER           BITS                                     |
+---------------------------------------------------------+
|CHRYSLER        512                                      |
|FORD            12488                                    |
|HONDA           2144                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_COUNT(numeric_value)

BIT_COUNT()函数返回在numeric_value中有效的位数。 以下示例演示使用BIT_COUNT()函数来返回数字范围的活动位数:

SQL> SELECT
          BIT_COUNT(2) AS TWO,
          BIT_COUNT(4) AS FOUR,
          BIT_COUNT(7) AS SEVEN
+-----+------+-------+
| TWO | FOUR | SEVEN |
+-----+------+-------+
|   1 |    1 |     3 |
+-----+------+-------+
1 row in set (0.00 sec)

BIT_OR(expression

BIT_OR()函数返回表达式中所有位的按位或。 位或函数的基本前提是,如果相应的位匹配则返回0,如果对应的位不匹配则返回1。 该函数返回一个64位整数,如果没有匹配的行,则返回0.以下示例在CARS表的PRICE列上执行BIT_OR()函数,按MAKER分组:

SQL> SELECT 
          MAKER, BIT_OR(PRICE) BITS
          FROM CARS GROUP BY MAKER
+---------------------------------------------------------+
|MAKER           BITS                                     |
+---------------------------------------------------------+
|CHRYSLER        62293                                    |
|FORD            16127                                    |
|HONDA           32766                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CEIL(X)

CEILING(X)

这些函数返回不小于X的最小整数值。请参考以下示例:

SQL> SELECT CEILING(3.46);
+---------------------------------------------------------+
| CEILING(3.46)                                           |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT CEIL(-6.43);
+---------------------------------------------------------+
| CEIL(-6.43)                                             |
+---------------------------------------------------------+
| -6                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONV(N,from_base,to_base)

CONV()函数的目的是在不同的数字之间转换数字。 该函数返回从from_base转换为to_base的值N的字符串。 最小基数值为2,最大值为36.如果任何参数为NULL,则函数返回NULL。 参考以下示例,将数字5从基数16转换为基数2:

SQL> SELECT CONV(5,16,2);
+---------------------------------------------------------+
| CONV(5,16,2)                                            |
+---------------------------------------------------------+
| 101                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COS(X)

此函数返回X的余弦。参考以下示例:

SQL>SELECT COS(90);
+---------------------------------------------------------+
| COS(90)                                                 |
+---------------------------------------------------------+
| -0.44807361612917                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COT(X)

此函数返回X的余切。参考以下示例:

SQL>SELECT COT(1);
+---------------------------------------------------------+
| COT(1)                                                  |
+---------------------------------------------------------+
| 0.64209261593433                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DEGREES(X)

此函数返回从弧度转换为度的X的值。参考以下示例:

SQL>SELECT DEGREES(PI());
+---------------------------------------------------------+
| DEGREES(PI())                                           |
+---------------------------------------------------------+
| 180.000000                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXP(X)

该函数返回e(自然对数的底)的值增加到X的幂。参考以下示例:

SQL>SELECT EXP(3);
+---------------------------------------------------------+
| EXP(3)                                                  |
+---------------------------------------------------------+
| 20.085537                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FLOOR(X)

此函数返回不大于X的最大整数值。参考以下示例:

SQL>SELECT FLOOR(7.55);
+---------------------------------------------------------+
| FLOOR(7.55)                                             |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FORMAT(X,D)

FORMAT()函数用于以以下格式格式化数字X:###,###,###。##截断到D个小数位。 以下示例演示了FORMAT()函数的使用和输出:

SQL>SELECT FORMAT(423423234.65434453,2);
+---------------------------------------------------------+
| FORMAT(423423234.65434453,2)                            |
+---------------------------------------------------------+
| 423,423,234.65                                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

GREATEST(N1,N2,N3,..........)

GREATEST()函数返回输入参数集合(n1,n2,n3等)中的最大值。 以下示例使用GREATEST()函数从一组数值中返回最大数字:

SQL>SELECT GREATEST(3,5,1,8,33,99,34,55,67,43);
+---------------------------------------------------------+
| GREATEST(3,5,1,8,33,99,34,55,67,43)                     |
+---------------------------------------------------------+
| 99                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

INTERVAL(N,N1,N2,N3,..........)

INTERVAL()函数将N的值与值列表(N1,N2,N3等)进行比较。 如果N <N1,该函数返回0,如果N <N2,则返回1,如果N <N3,则返回2,等等。 如果N为NULL,它将返回.1。 值列表必须采用N1 <N2 <N3的形式,才能正常工作。 以下代码是INTERVAL()函数如何工作的一个简单示例:

SQL>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);
+---------------------------------------------------------+
| INTERVAL(6,1,2,3,4,5,6,7,8,9,10)                        |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

请记住,6是大于N的第一个值的值列表中的从零开始的索引。在我们的示例中,7是违规值,位于第六个索引槽中。

LEAST(N1,N2,N3,N4,......)

LEAST()函数与GREATEST()函数相反。 其目的是从值列表(N1,N2,N3等)返回最小值项。 以下示例显示LEAST()函数的正确用法和输出:

SQL>SELECT LEAST(3,5,1,8,33,99,34,55,67,43);
+---------------------------------------------------------+
| LEAST(3,5,1,8,33,99,34,55,67,43)                        |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOG(X)

LOG(B,X)

函数的单一参数版本将返回X的自然对数。如果使用两个参数调用,则返回任意基数B的X的对数。考虑下面的示例:

SQL>SELECT LOG(45);
+---------------------------------------------------------+
| LOG(45)                                                 |
+---------------------------------------------------------+
| 3.806662                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT LOG(2,65536);
+---------------------------------------------------------+
| LOG(2,65536)                                            |
+---------------------------------------------------------+
| 16.000000                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOG10(X)

此函数返回X的十进制对数。

SQL>SELECT LOG10(100);
+---------------------------------------------------------+
| LOG10(100)                                              |
+---------------------------------------------------------+
| 2.000000                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MOD(N,M)

此函数返回N除以M的余数。请参考以下示例:

SQL>SELECT MOD(29,3);
+---------------------------------------------------------+
| MOD(29,3)                                               |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

OCT(N)

OCT()函数返回八进制数N的字符串表示。这相当于使用CONV(N,10,8)。

SQL>SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12)                                                 |
+---------------------------------------------------------+
| 14                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PI()

这个函数简单地返回pi的值。 SQL在内部存储pi的完整双精度值。

SQL>SELECT PI();
+---------------------------------------------------------+
| PI()                                                    |
+---------------------------------------------------------+
| 3.141593                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

POW(X,Y)

POWER(X,Y)

这两个函数返回X的值增加到Y的幂。

SQL> SELECT POWER(3,3);
+---------------------------------------------------------+
| POWER(3,3)                                              |
+---------------------------------------------------------+
| 27                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RADIANS(X)

此函数返回X的值,从度数转换为弧度。

SQL>SELECT RADIANS(90);
+---------------------------------------------------------+
| RADIANS(90)                                             |
+---------------------------------------------------------+
|1.570796                                                 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ROUND(X)

ROUND(X,D)

此函数将X四舍五入为最接近的整数。 如果提供了第二个参数D,则函数将X舍入为D个小数位。 D必须为正数或小数点右边的所有数字将被删除。 考虑下面的例子:

SQL>SELECT ROUND(5.693893);
+---------------------------------------------------------+
| ROUND(5.693893)                                         |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT ROUND(5.693893,2);
+---------------------------------------------------------+
| ROUND(5.693893,2)                                       |
+---------------------------------------------------------+
| 5.69                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIGN(X)

此函数返回X(负,零或正)的符号为-1,0或1。

SQL>SELECT SIGN(-4.65);
+---------------------------------------------------------+
| SIGN(-4.65)                                             |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT SIGN(0);
+---------------------------------------------------------+
| SIGN(0)                                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL>SELECT SIGN(4.65);
+---------------------------------------------------------+
| SIGN(4.65)                                              |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIN(X)

此函数返回X的正弦。参考以下示例:

SQL>SELECT SIN(90);
+---------------------------------------------------------+
| SIN(90)                                                 |
+---------------------------------------------------------+
| 0.893997                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQRT(X)

此函数返回X的非负平方根。请参考以下示例:

SQL>SELECT SQRT(49);
+---------------------------------------------------------+
| SQRT(49)                                                |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STD(expression)

STDDEV(expression

STD()函数用于返回表达式的标准偏差。 这等价于取表达式的VARIANCE()的平方根。 以下示例计算CARS表中PRICE列的标准差:

SQL>SELECT STD(PRICE) STD_DEVIATION FROM CARS;
+---------------------------------------------------------+
| STD_DEVIATION                                           |
+---------------------------------------------------------+
| 7650.2146                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TAN(X)

此函数返回参数X的正切,以弧度表示。

SQL>SELECT TAN(45);
+---------------------------------------------------------+
| TAN(45)                                                 |
+---------------------------------------------------------+
| 1.619775                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TRUNCATE(X,D)

此函数用于将X的值截断为D个小数位。 如果D为0,则删除小数点。 如果D为负数,则截断该值的整数部分中的D个值。 参考下面的例子:

SQL>SELECT TRUNCATE(7.536432,2);
+---------------------------------------------------------+
| TRUNCATE(7.536432,2)                                    |
+---------------------------------------------------------+
| 7.53                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

以上内容是否对您有帮助:
二维码
建议反馈
二维码