• 关于

    转换函数

    的搜索结果

回答

1.转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是N... 2.强制类型转换 还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值

景凌凯 2020-04-02 20:00:02 0 浏览量 回答数 0

问题

OceanBase支持的函数概述

云栖大讲堂 2019-12-01 21:28:37 948 浏览量 回答数 0

问题

将一个以数组为参数的函数fn转换为不定参数函数。 给定一个函数,返回一个闭包,将所有输入组织成数组。

游客5sblnickduwac 2020-03-18 12:26:00 1 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

做了自定义类型转换之后,greenplum为什么函数调用的时候不会把数字类型自动转换为字符串类型

assdfsd 2019-12-01 19:36:38 605 浏览量 回答数 0

问题

请教一个问题,我做了自定义类型转换之后,为什么函数调用的时候不会把数字类型自动转换为字符串类型:

游客886 2019-12-01 19:36:55 297 浏览量 回答数 1

问题

将函数指针转换为可调用对象

哦哦喔 2020-04-17 18:14:36 3 浏览量 回答数 2

问题

Flink SQL中的DATE_FORMAT()函数中,如何将bigint转换为timestamp类型?

flink小助手 2019-12-01 19:30:05 1358 浏览量 回答数 1

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:58 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:59 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:59 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:57 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:58 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ABS 命令格式如下: Double abs(Double number) Bigint abs(Bigint number) Decimal abs(Decimal number) 命令说明如下: 该函数用于返回number的绝对值。 参数说明: number:当number为Double、Bigint或Decimal类型时。 输入为Bigint,返回Bigint。 输入为Double,返回Double类型。 输入为Decimal,返回Decimal类型。 若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。 返回值: 返回Double、Bigint或Decimal类型,取决于输入参数的类型。若输入为null,则返回null。 说明 当输入Bigint类型的值超过Bigint的最大表示范围时,会返回Double类型,这种情况下可能会损失精度。 示例如下: abs(null)=null abs(-1)=1 abs(-1.2)=1.2 abs("-2")=2.0 abs(122320837456298376592387456923748)=1.2232083745629837e32 下面是一个完整的ABS函数在SQL中使用的示例,其他内建函数(除窗口函数、聚合函数外)的使用方式与其类似,不再举例。 select abs(id) from tbl1; -- 取tbl1表内id字段的绝对值 ACOS 命令格式如下: Double acos(Double number) Decimal acos(Decimal number) 命令说明如下: 该函数用于计算number的反余弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在0 ~ π之间。若number为null,则返回null。 示例如下: acos("0.87")=0.5155940062460905 acos(0)=1.5707963267948966 ASIN 命令格式如下: Double asin(Double number) Decimal asin(Decimal number) 命令说明如下: 该函数用于计算number的反正弦函数。 参数说明: number:Double类型或Decimal类型,-1 ≤ number ≤1。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型,值域在-π/2 ~π/2之间。若number为null,返回null。 示例如下: asin(1)=1.5707963267948966 asin(-1)=-1.5707963267948966 ATAN 命令格式如下: Double atan(Double number) 命令说明如下: 该函数用于计算number的反正切函数。 参数说明: number:Double类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型,值域在-π/2~π/2之间。若number为null,则返回null。 示例如下: atan(1)=0.7853981633974483 atan(-1)=-0.7853981633974483 CEIL 命令格式如下: Bigint ceil(Double value) Bigint ceil(Decimal value) 命令说明如下: 向上取整,函数返回不小于输入值value的最小整数。 参数说明: value:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。任意一个参数输入为null,则返回null。 示例如下: ceil(1.1)=2 ceil(-1.1)=-1 CONV 命令格式如下: String conv(String input, Bigint from_base, Bigint to_base) 命令说明如下: 该函数为进制转换函数。 参数说明: input:以String表示的要转换的整数值,接受Bigint、Double的隐式转换。 from_base、to_base:以十进制表示的进制的值,可接受的的值为2、8、10和16。接受String及Double的隐式转换。 返回值: 返回String类型。任意一个参数输入为null,返回null。转换过程以64位精度工作,溢出时报异常。输入如果是负值,即以(-)开头,报异常。如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。 示例如下: conv('1100', 2, 10)='12' conv('1100', 2, 16)='c' conv('ab', 16, 10)='171' conv('ab', 16, 16)='ab' COS 命令格式如下: Double cos(Double number) Decimal cos(Decimal number) 命令说明如下: 该函数用于计算number的余弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 示例如下: cos(3.1415926/2)=2.6794896585028633e-8 cos(3.1415926)=-0.9999999999999986 COSH 命令格式如下: Double cosh(Double number) Decimal cosh(Decimal number) 命令说明如下: 该函数用于计算number的双曲余弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后,参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,返回null。 COT 命令格式如下: Double cot(Double number) Decimal cot(Decimal number) 命令说明如下: 该函数用于计算number的余切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 EXP 命令格式如下: Double exp(Double number) Decimal exp(Decimal number) 命令说明如下: 该函数用于计算number的指数函数。 返回值: 返回number的指数值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 FLOOR 命令格式如下: Bigint floor(Double number) Bigint floor(Decimal number) 命令说明如下: 向下取整,函数返回不大于number的最大整数值。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Bigint类型。若number为null,则返回null。 示例如下: floor(1.2)=1 floor(1.9)=1 floor(0.1)=0 floor(-1.2)=-2 floor(-0.1)=-1 floor(0.0)=0 floor(-0.0)=0 LN 命令格式如下: Double ln(Double number) Decimal ln(Decimal number) 命令说明如下: 该函数用于返回number的自然对数。 参数说明: number:Double类型或Decimal类型。 若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 若number为null,则返回null。若number为负数或零,则执行报错。 返回值: 返回Double类型或Decimal类型。 LOG 命令格式如下: Double log(Double base, Double x) Decimal log(Decimal base, Decimal x) 命令说明如下: 该函数用于返回以base为底的x的对数。 参数说明: base:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 x:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型的对数值。 若base和x中存在null,则返回null。 若base和x中某一个值为负数或 0,会引发异常。 若base为1(会引发一个除零行为),也会引发异常。 POW 命令格式如下: Double pow(Double x, Double y) Decimal pow(Decimal x, Decimal y) 命令说明如下: 该函数用于返回x的y次方,即x^y。 参数说明: X:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Y:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若x或y为null,则返回null。 RAND 命令格式如下: Double rand(Bigint seed) 命令说明如下: 该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。 参数说明: seed:可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。 返回值: 返回Double类型。 示例如下: select rand() from dual; select rand(1) from dual; ROUND 命令格式如下: Double round(Double number, [Bigint Decimal_places]) Decimal round(Decimal number, [Bigint Decimal_places]) 命令说明如下: 该函数四舍五入到指定小数点位置。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_place:Bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。 返回值: 返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。 说明 Decimal_places可以是负数。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。 示例如下: round(125.315)=125.0 round(125.315, 0)=125.0 round(125.315, 1)=125.3 round(125.315, 2)=125.32 round(125.315, 3)=125.315 round(-125.315, 2)=-125.32 round(123.345, -2)=100.0 round(null)=null round(123.345, 4)=123.345 round(123.345, -4)=0.0 SIN 命令格式如下所示: Double sin(Double number) Decimal sin(Decimal number) 命令说明如下: 该函数用于计算number的正弦函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SINH 命令格式如下: Double sinh(Double number) Decimal sinh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正弦函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 SQRT 命令格式如下: Double sqrt(Double number) Decimal sqrt(Decimal number) 命令说明如下: 该函数用于计算number的平方根。 参数说明: number:Double类型或Decimal类型,必须大于0,小于0时引发异常。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TAN 命令说明如下: Double tan(Double number) Decimal tan(Decimal number) 命令说明如下: 该函数用于计算number的正切函数,输入为弧度值。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TANH 命令格式如下: Double tanh(Double number) Decimal tanh(Decimal number) 命令说明如下: 该函数用于计算number的双曲正切函数。 参数说明: number:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 返回值: 返回Double类型或Decimal类型。若number为null,则返回null。 TRUNC 命令格式如下: Double trunc(Double number[, Bigint Decimal_places]) Decimal trunc(Decimal number[, Bigint Decimal_places]) 命令说明如下: 该函数用于将输入值number截取到指定小数点位置。 参数说明: number:Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。 Decimal_places:Bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为Bigint,省略此参数时默认到截取到个位数。 返回值: 返回值类型为Double或Decimal类型。若number或Decimal_places为null,则返回null。 说明 返回Double类型时,返回的结果的显示可能不符合预期,如示例trunc(125.815, 1)(这个Double类型显示问题任何系统都存在)。 截取掉的部分补0。 Decimal_places可以是负数,负数会从小数点向左开始截取,并且不保留小数部分。如果Decimal_places超过了整数部分长度,则返回0。 示例如下: trunc(125.815)=125.0 trunc(125.815,0)=125.0 trunc(125.815,1)=125.80000000000001 trunc(125.815,2)=125.81 trunc(125.815,3)=125.815 trunc(-125.815,2)=-125.81 trunc(125.815,-1)=120.0 trunc(125.815,-2)=100.0 trunc(125.815,-3)=0.0 trunc(123.345,4)=123.345 trunc(123.345,-4)=0.0 MaxCompute2.0扩展函数 升级到MaxCompute2.0后,产品扩展部分数学函数,新函数若用到新数据类型时,在使用新函数的SQL前,需要加一个set语句: set odps.sql.type.system.odps2=true; 下文将为您详细介绍新扩展的函数。 LOG2 命令格式如下: Double log2(Double number) Double log2(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以2为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log2(null)=null log2(0)=null log2(8)=3.0 LOG10 命令格式如下: Double log10(Double number) Double log10(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于以10为底,返回number的对数。 参数说明: number:Double或Decimal类型。 返回值: 返回Double类型。若输入为0或null,则返回null。 示例如下: log10(null)=null log10(0)=null log10(8)=0.9030899869919435 BIN 命令格式如下: String bin(Bigint number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的二进制代码表示。 参数说明: number:Bigint类型。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回null。 示例如下: bin(0)='0' bin(null)='null' bin(12)='1100' HEX 命令格式如下: String hex(Bigint number) String hex(String number) String hex(BINARY number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将整数或字符转换为十六进制格式。 参数说明: number:如果number是Bigint类型,那么返回number的十六进制表示。如果变量是String类型,则返回该字符串的十六进制表示。 返回值: 返回String类型。若输入为0,返回0,输入为null,则返回异常。 示例如下: hex(0)=0 hex('abc')='616263' hex(17)='11' hex('17')='3137' hex(null)异常返回失败 说明 当输入参数为Binary类型时,请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 UNHEX 命令格式如下: BINARY unhex(String number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回十六进制字符串所代表的字符串。 参数说明: number:为十六进制字符串。 返回值: 返回Binary类型,若输入0,返回失败,若输入为null,则返回null。 示例如下: unhex('616263')='abc' unhex(616263)='abc' RADIANS 命令格式如下: Double radians(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将角度转换为弧度。 参数说明: number:Double类型数据。 返回值: 返回Double类型,若输入为null,返回null。 示例如下: radians(90)=1.5707963267948966 radians(0)=0.0 radians(null)=null DEGREES 命令格式如下: Double degrees(Double number) Double degrees(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于将弧度转换为角度。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入null,则返回null。 示例如下: degrees(1.5707963267948966)=90.0 degrees(0)=0.0 degrees(null)=null SIGN 命令格式如下: Double sign(Double number) Double sign(Decimal number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于取输入数据的符号,1.0表示正,-1.0表示负,否则0.0。 参数说明: number:Double或Decimal类型数据。 返回值: 返回Double类型,若输入0,则返回0.0,输入为null,则返回null。 示例如下: sign(-2.5)=-1.0 sign(2.5)=1.0 sign(0)=0.0 sign(null)=null E 命令格式如下: Double e() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回e的值。 返回值: 返回Double类型。 示例如下: e()=2.718281828459045 PI 命令格式如下: Double pi() 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回π的值。 返回值: 返回Double类型。 示例如下: pi()=3.141592653589793 FACTORIAL 命令格式如下: Bigint factorial(Int number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于返回number的阶乘。 参数说明: number:Int类型数据,且在[0..20]之间。 返回值: 返回Bigint类型,输入为0,则返回1,输入为null或[0..20]之外的值,返回null。 示例如下: factorial(5)=120 --5!=5*4*3*2*1=120 CBRT 命令格式如下: Double cbrt(Double number) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于计算number的立方根。 参数说明: number:Double类型数据。 返回值: 返回Double类型,输入为null,返回null。 示例如下: cbrt(8)=2 cbrt(null)=null SHIFTLEFT 命令格式如下: Int shiftleft(Tinyint|Smallint|Int number1, Int number2) Bigint shiftleft(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位左移(<<)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bingint类型。 示例如下: shiftleft(1,2)=4 --1的二进制左移2位(1<<2,0001左移两位是0100) shiftleft(4,3)=32 --4的二进制左移3位(4<<3,0100左移3位是100000) SHIFTRIGHT 命令格式如下: Int shiftright(Tinyint|Smallint|Int number1, Int number2) Bigint shiftright(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于按位右移(>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftright(4,2)=1 -- 4的二进制右移2位(4>>2,0100右移两位是0001) shiftright(32,3)=4 -- 32的二进制右移3位(32>>3,100000右移3位是0100) SHIFTRIGHTUNSIGNED 命令格式如下: Int shiftrightunsigned(Tinyint|Smallint|Int number1, Int number2) Bigint shiftrightunsigned(Bigint number1, Int number2) 说明 请在用到该函数的SQL语句前加set odps.sql.type.system.odps2=true;,并与SQL一起提交运行,以便正常使用新数据类型。 命令说明如下: 该函数用于无符号按位右移(>>>)。 参数说明: number1:Tinyint|Smallint|Int|Bigint整型数据。 number2:Int整型数据。 返回值: 返回Int或Bigint类型。 示例如下: shiftrightunsigned(8,2)=2 --8的二进制无符号右移2位(8>>>2,1000右移两位是0010) shiftrightunsigned(-14,2)=1073741820 -- -14的二进制右移2位(-14>>>2, 11111111 11111111 11111111 11110010右移2位是 00111111 11111111 11111111 11111100)

2019-12-01 23:10:58 0 浏览量 回答数 0

回答

一般情况而言需要做字符串到十进制数字的转换可以用 crc32() 函数 ...这个函数的优点是快 ... 在我的知识范围内这应该是 php 内置最快的哈希函数 ...缺点是操作系统依赖 ... 不同操作系统的 crc32() 函数会产生不一样的值 ...至于把 md5() 的结果转化成十进制 ... 用 hexdec() 显然是不靠谱的 ... 原因如楼上所说不赘述 ...这里我们用到另外一个更加灵活的进制转换函数 base_convert() ...这个函数的好处是返回 string ... 也就不存在溢出的问题了 ...示例代码如下 ...<?php echo base_convert( md5( 'something' ), 16, 10 ); // 89699910832403552662426604448206446062

落地花开啦 2019-12-02 02:43:39 0 浏览量 回答数 0

问题

可否使用函数计算,智能媒体的文档转换,实现对OSS的文档进行转换并保存到OSS中

1388mao 2019-12-01 19:43:47 780 浏览量 回答数 2

问题

MaxCompute用户指南:SQL:内建函数:数学函数

行者武松 2019-12-01 22:02:58 1409 浏览量 回答数 0

问题

如何使用scala将特定函数转换为apache spark中的udf函数?[重复]

社区小助手 2019-12-01 19:29:04 575 浏览量 回答数 1

问题

MaxCompute内建日期函数报错信息

montos 2020-05-27 16:22:39 3 浏览量 回答数 1

问题

MaxCompute是否有函数能把日期转换成周几?

问问小秘 2020-09-21 14:21:33 1 浏览量 回答数 1

问题

数据结构与算法中如何将十进制整数转换为二进制整数并输出函数

知与谁同 2019-12-01 20:14:29 525 浏览量 回答数 1

回答

Python bool() 函数描述bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。bool 是 int 的子类。语法以下是 bool() 方法的语法:class bool([x])参数x -- 要进行转换的参数。返回值返回 Ture 或 False。实例以下展示了使用 bool 函数的实例:bool()Falsebool(0)Falsebool(1)Truebool(2)Trueissubclass(bool, int) # bool 是 int 子类True

世事皆空 2019-12-02 01:07:49 0 浏览量 回答数 0

问题

C语言中scanf如果输入与格式字符串不同会怎么样?

a123456678 2019-12-01 19:49:44 928 浏览量 回答数 1

问题

将单方法的类转换为函数

哦哦喔 2020-04-17 13:53:58 0 浏览量 回答数 1

问题

MaxCompute用户指南:SQL:类型转换

行者武松 2019-12-01 22:02:12 1478 浏览量 回答数 0

问题

列表到数组的转换以使用ravel()函数

保持可爱mmm 2020-02-08 11:05:50 1 浏览量 回答数 1

回答

将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。注意:上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

杨冬芳 2019-12-02 03:05:00 0 浏览量 回答数 0

回答

自己暂时解决了,问题出在::date转换上,把jsonb里的date字符串转成date格式,内置的方法,均不是immutable属性(稳定属性),所以不允许建立索引。包括to_date()函数。解决办法:自己按照内置的to_date()函数,改一个to_date_immutable()函数。然后给to_date_immutable()函数immutable属性。然后用自己的to_date_immutable()函数转换格式。就可以创建索引了。虽然官方不建议在非immutable属性上强行索引,但是为了解决问题。。。没办法了谁有更好的办法,可以留言哈~!创建函数代码:CREATE OR REPLACE FUNCTION to_date_immutable( text, text) RETURNS date AS 'to_date' LANGUAGE internal immutable STRICT COST 1; ALTER FUNCTION to_date_immutable(text, text) OWNER TO postgres; COMMENT ON FUNCTION to_date_immutable(text, text) IS 'convert text to date';建立索引代码:create index item_date_idx on item using btree((to_date_immutable(info_bak->>'release_date','yyyy-mm-dd')));

完美的爱 2019-12-02 00:24:52 0 浏览量 回答数 0

问题

cast函数能否将不符合转换条件的值置成null。。。例如cast('abc' as bigint)返回null

云栖大讲堂 2019-12-01 19:30:06 700 浏览量 回答数 1

问题

转换函数是什么?

nicenelly 2019-12-01 21:26:35 1259 浏览量 回答数 0

回答

5.3 新增的闭包语法中,use 用来捕捉变量到匿名函数内 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。Example #1 匿名函数示例<?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // 输出 helloWorld ?>闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类 Closure 的对象实例。

落地花开啦 2019-12-02 02:50:32 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅