本文介绍AnalyticDB MySQL版集群支持的数值函数。
- ABS:返回参数的绝对值。
- ACOS:返回参数的反余弦值。
- ASIN:返回参数的反正弦值。
- ATAN:返回参数的反正切值。
- ATAN2:返回参数x除以参数y之后的反正切值。
- CEILING或CEIL:返回大于等于参数x,且最接近x的整数值。
- COS:返回参数的余弦值。
- COT:返回参数的余切值。
- CRC32:返回参数的循环冗余码。
- DEGREES:弧度转换为角度度。
- EXP:返回以e为底、x为幂的值。
- FLOOR:返回小于等于参数x,且最接近x的整数值。
- LN:返回参数的自然对数。
- LOG:对数函数。
- LOG2:返回以2为底的对数。
- LOG10:返回以10为底的对数。
- PI:返回圆周率pi的值。
- POWER/POW:返回x的y次幂。
- RADIANS:角度转换为弧度。
- RAND返回目标数字范围内的一个随机数。
- ROUND:返回参数四舍五入后的值。
- SIGN:返回参数的符号的值。
- SIN:返回参数的正弦值。
- SQRT:返回参数的平方根。
- TAN:返回参数的正切值。
ABS
abs(x)
- 命令说明:返回参数
x
的绝对值。 - 输入值类型:TINYINT、SMALLINT、INT、BIGINT、DOUBLE、FLOAT或DECIMAL。
- 返回值类型:
- 当输入值类型为TINYINT、SMALLINT、INT或BIGINT时,返回值类型为BIGINT。
- 当输入值类型为DOUBLE或FLOAT时,返回值类型为DOUBLE。
- 当输入值类型为DECIMAL时,返回值类型为DECIMAL。
- 示例:
返回结果如下:SELECT abs(4.5);
+----------+ | abs(4.5) | +----------+ | 4.5 | +----------+
返回结果如下:SELECT abs(-4);
+--------+ | abs(4) | +--------+ | 4 | +--------+
ACOS
acos(x)
- 命令说明:返回参数
x
的反余弦值。如果
x>1
或者x<-1
,返回结果为NULL
。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT acos(0.5);
+--------------------+ | acos(0.5) | +--------------------+ | 1.0471975511965979 | +--------------------+
ASIN
asin(x)
- 命令说明:返回参数
x
的反正弦值。如果
x>1
或者x<-1
,返回结果为NULL
。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT asin(0.5);
+--------------------+ | asin(0.5) | +--------------------+ | 0.5235987755982989 | +--------------------+
ATAN
atan(x)
- 命令说明:返回参数
x
的反正切值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT atan(0.5);
+--------------------+ | atan(0.5) | +--------------------+ | 0.4636476090008061 | +--------------------+
ATAN2
atan2(x, y)
- 命令说明:返回参数
x
除以参数y
之后的反正切值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT atan2(0.5,0.3);
+--------------------+ | atan2(0.5,0.3) | +--------------------+ | 1.0303768265243125 | +--------------------+
CEILING或CEIL
ceiling(x)
ceil(x)
- 命令说明:返回大于或等于
x
,且最接近x
的整数。 - 输入值类型:TINYINT、SMALLINT、INT、BIGINT、DOUBLE、FLOAT或DECIMAL。
- 返回值类型:
- 当输入值类型为TINYINT、SMALLINT、INT或BIGINT时,返回值类型为BIGINT。
- 当输入值类型为DOUBLE或FLOAT时,返回值类型为DOUBLE。
- 当输入值类型为DECIMAL时,返回值类型为DECIMAL。
- 示例:
返回结果如下:SELECT ceiling(4);
+------------+ | ceiling(4) | +------------+ | 4 | +------------+
返回结果如下:SELECT ceil(-4.5);
+------------+ | ceil(-4.5) | +------------+ | -4 | +------------+
COS
cos(x)
- 命令说明:返回
x
的余弦值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT cos(1.3);
+---------------------+ | cos(1.3) | +---------------------+ | 0.26749882862458735 | +---------------------+
COT
cot(x)
- 命令说明:返回参数
x
的余切值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT cot(1.234);
+---------------------+ | cot(1.234) | +---------------------+ | 0.35013639786701445 | +---------------------+
CRC32
crc32(x)
- 命令说明:返回参数
x
的循环冗余码。 - 输入值类型:VARBINARY。
- 返回值类型:BIGINT。
- 示例:
返回结果如下:SELECT crc32('中国');
+-----------------+ | crc32('中国') | +-----------------+ | 737014929 | +-----------------+
DEGREES
degrees(x)
- 命令说明:弧度转换为角度。
- 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT degrees(1.3);
+-------------------+ | degrees(1.3) | +-------------------+ | 74.48451336700703 | +-------------------+
EXP
exp(x)
- 命令说明:返回以
e
为底,x
为幂的值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT exp(4.5);
+-------------------+ | exp(4.5) | +-------------------+ | 90.01713130052181 | +-------------------+
FLOOR
floor(x)
- 命令说明:返回小于或等于
x
,且最接近x
的整数。 - 输入值类型:TINYINT、SMALLINT、INT、BIGINT、DOUBLE、FLOAT或DECIMAL。
- 返回值类型:
- 当输入值类型为TINYINT、SMALLINT、INT或BIGINT时,返回值类型为BIGINT。
- 当输入值类型为DOUBLE或FLOAT时,返回值类型为DOUBLE。
- 当输入值类型为DECIMAL时,返回值类型为DECIMAL。
- 示例:
返回结果如下:SELECT floor(7);
+----------+ | floor(7) | +----------+ | 7 | +----------+
SELECT floor(0.8);
说明 AnalyticDB MySQL版会将0.8处理成DECIMAL类型的值。当输入值类型为DECIMAL时,返回值类型为DECIMAL。+-------------+ | floor(0.8) | +-------------+ | 0 | +-------------+
SELECT floor(4/5);
说明 AnalyticDB MySQL版会将4/5处理成DOUBLE类型的值。当输入值类型为DOUBLE时,返回值类型为DOUBLE。您可以使用CAST函数,将floor(4/5)=0.0转换成INTEGER或BIGINT,详情请参见CAST AS BIGINT。+-------------+ | floor(4/5) | +-------------+ | 0.0 | +-------------+
LN
ln(x)
- 命令说明:返回
x
的自然对数。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT ln(2.718281828459045);
+-----------------------+ | ln(2.718281828459045) | +-----------------------+ | 1.0 | +-----------------------+
LOG
log(x)
log(x, y)
- 命令说明:
- 输入一个参数时,返回
x
的自然对数。 - 输入两个参数时,返回以
x
为底的y
的对数。
- 输入一个参数时,返回
- 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT log(16);
+-------------------+ | log(16) | +-------------------+ | 2.772588722239781 | +-------------------+
返回结果如下:SELECT log(10,100);
+-------------+ | log(10,100) | +-------------+ | 2.0 | +-------------+
LOG2
log2(x)
- 命令说明:返回以2为底的对数。
- 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT log2(8.7654);
+-------------------+ | log2(8.7654) | +-------------------+ | 3.131819928389146 | +-------------------+
LOG10
log10(x)
- 命令说明:返回以10位底的对数。
- 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT log10(100.876);
+--------------------+ | log10(100.876) | +--------------------+ | 2.0037878529824615 | +--------------------+
PI
pi()
- 命令说明:返回圆周率pi的值。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT pi();
+-------------------+ | pi() | +-------------------+ | 3.141592653589793 | +-------------------+
POWER/POW
power(x, y)
pow(x, y)
- 命令说明:返回
x
的y
次幂。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT power(1.2,3.4);
+-------------------+ | power(1.2,3.4) | +-------------------+ | 1.858729691979481 | +-------------------+
返回结果如下:SELECT pow(-2,-3);
+------------+ | pow(-2,-3) | +------------+ | -0.125 | +------------+
RADIANS
radians(x)
- 命令说明:角度转换为弧度。
- 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT radians(60.0);
+--------------------+ | radians(60.0) | +--------------------+ | 1.0471975511965976 | +--------------------+
RAND
rand()
rand()*(y-x)+x
- 命令说明:随机函数
rand()
不支持设置入参,会随机返回0到1之间(包含0但不包含1)的一个数。您也可以使用
rand()*(y-x)+x
函数,随机返回x
到y
之间(包含x
但不包含y
)的一个数。 - 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT rand();
+--------------------+ | rand() | +--------------------+ | 0.6613712594764614 | +--------------------+
- 随机返回3到12之间的一个浮点数。
返回结果如下:SELECT rand()*(12-3)+3;
+-------------------+ | rand()*(12-3)+3 | +-------------------+ | 9.073329270781976 | +-------------------+
ROUND
round(x)
round(x,d)
- 命令说明:将参数
x
四舍五入,d
是要保留的精度,默认d
为0
,舍入算法取决于x
的数据类型。- 如果
x
为null
,返回结果为NULL
。 - 如果
d>0
,则四舍五入到指定的小数位。 - 如果
d=0
,则四舍五入到最接近的整数。 - 如果
d<0
,则四舍五入到小数点左侧的指定位数。
- 如果
- 输入值类型:TINYINT、SMALLINT、INT、BIGINT、DOUBLE、FLOAT或DECIMAL。
- 返回值类型:
- 当输入值类型为TINYINT、SMALLINT、INT或BIGINT时,返回值类型为BIGINT。
- 当输入值类型为DOUBLE或FLOAT时,返回值类型为DOUBLE。
- 当输入值类型为DECIMAL时,返回值类型为DECIMAL。
- 示例:
- 将345.983四舍五入到最近的整数。
返回结果如下:SELECT round(345.983,0);
+------------------+ | round(345.983,0) | +------------------+ | 346.000 | +------------------+
- 将345.123四舍五入到小数点后一位。
返回结果如下:SELECT round(345.123,1);
+------------------+ | round(345.123,1) | +------------------+ | 345.100 | +------------------+
- 将345.984四舍五入到小数点前一位。
返回结果如下:SELECT round(344.984,-1);
+-------------------+ | round(344.984,-1) | +-------------------+ | 340.000 | +-------------------+
- 将345.984四舍五入到小数点前4位。
返回结果如下:SELECT round(345.984,-4);
+-------------------+ | round(345.984,-4) | +-------------------+ | 0.000 | +-------------------+
- 将345.983四舍五入到最近的整数。
SIGN
sign(x)
- 命令说明:根据参数
x
的符号返回对应的数值:- 如果
x>0
,则返回1。 - 如果
x=0
,则返回0。 - 如果
x<0
,则返回-1。
- 如果
- 输入值类型:TINYINT、SMALLINT、INT、BIGINT、DOUBLE、FLOAT或DECIMAL。
- 返回值类型:BIGINT。
- 示例:
返回结果如下:SELECT sign(12);
+----------+ | sign(12) | +----------+ | 1 | +----------+
返回结果如下:SELECT sign(-4.5);
+------------+ | sign(-4.5) | +------------+ | -1 | +------------+
SIN
sin(x)
- 命令说明:返回参数
x
的正弦值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT sin(1.234);
+--------------------+ | sin(1.234) | +--------------------+ | 0.9438182093746337 | +--------------------+
SQRT
sqrt(x)
- 命令说明:返回参数
x
的平方根。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT sqrt(4.222);
+-------------------+ | sqrt(4.222) | +-------------------+ | 2.054750593137766 | +-------------------+
TAN
tan(x)
- 命令说明:返回参数
x
的正切值。 - 输入值类型:DOUBLE。
- 返回值类型:DOUBLE。
- 示例:
返回结果如下:SELECT tan(8);
+--------------------+ | tan(8) | +--------------------+ | -6.799711455220379 | +--------------------+