• 关于

    返回值

    的搜索结果

问题

java中有返回值的函数中throw new exception会给函数返回值吗?返回值是什么?报错

因为相信,所以看见。 2020-05-25 15:57:19 11 浏览量 回答数 1

回答

1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

蛮大人123 2019-12-02 02:13:16 0 浏览量 回答数 0

回答

get()方法语法:dict.get(key, default=None)参数key -- 字典中要查找的键。default -- 如果指定键的值不存在时,返回该默认值值。返回值返回指定键的值,如果值不在字典中返回默认值None。

半指温柔乐 2019-12-02 01:09:31 0 浏览量 回答数 0

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

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

回答

函数体中 return 语句有指定返回值时返回的就是其值 函数体中没有 return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType,与 return 、return None 等效,都是返回 None。 返回值是一个函数处理的结果

老离 2019-12-02 01:10:05 0 浏览量 回答数 0

问题

PHP函数返回值可不可以既返回bool值,而且还返回其他值?

落地花开啦 2019-12-01 19:56:39 861 浏览量 回答数 1

回答

newThread().start()返回的是start方法的返回值,而start返回值类型是void(无返回值类型) 楼上说的对,,补充一下 newThread().start();和Threadthread=newThread();thread.start();等价,,, 但是Threadthread=newThread();thread.start();和Threadthread=newThread().start();不等价 原因正是【newThread().start()返回的是start方法的返回值,而start返回值类型是void(无返回值类型)】(楼上那句话)

爱吃鱼的程序员 2020-06-23 14:26:49 0 浏览量 回答数 0

回答

首先,会调用 valueOf 方法,如果方法的返回值是一个基本数据类型,就返回这个值, 如果调用 valueOf 方法之后的返回值仍旧是一个复杂数据类型,就会调用该对象的 toString 方法, 如果 toString 方法调用之后的返回值是一个基本数据类型,就返回这个值, 如果 toString 方法调用之后的返回值是一个复杂数据类型,就报一个错误。

茶什i 2019-12-02 03:18:15 0 浏览量 回答数 0

回答

这是 C++11 中一种将返回值类型后置的语法,使用时,在原返回值处用 auto 来占位,然后在参数列表后用 -> 来给出返回值类型。 至于这个语法存在的必要性,可以看这样一个例子: template< typename LHS, typename RHS> auto AddingFunc(const LHS &lhs, const RHS &rhs) -> decltype(lhs+rhs) {return lhs + rhs;}在这里,因为返回值是两个模版参数的"和",而 C++ 又允许重载加法运算符,所以我们不可能预先知道返回值的类型,需要用 decltype 进行推导。但是如果把返回值类型 decltype(lhs+rhs) 放在前面的话,会因为 lhs 和 rhs 这两个标识符没有声明而报错,因为这两个标识符是在后面的参数列表中才被声明的。所以在这个例子里,返回值必须后置。

a123456678 2019-12-02 02:02:16 0 浏览量 回答数 0

问题

什么是方法的返回值?返回值的作用是什么?

问问小秘 2020-03-27 17:53:35 1 浏览量 回答数 2

回答

简单地说,这是Java的语法规定。实际上,类的构造器是有返回值的,当我们用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值,因此构造器的返回值类型总是当前类,无须定义返回值类型。但必须注意:不能在构造器里显式使用return来返回当前类的对象,因为构造器的返回值是隐式的。

星尘linger 2020-04-07 12:05:41 0 浏览量 回答数 0

回答

字符串的操作 字符串的连接操作 符号: +格式:str1 + str2例如:str1 = 'I Love' str2 = 'You!' print(str1 + str2) >>> 'I Love You!' 返回值:str字符串的复制操作 符号: *格式:str * num例如:str = 'abc' num = 3 print(str1 * num) >>> 'abcabcabc' 返回值:str字符串的索引操作 符号: []格式:str[index]例如:str = 'abcde' print(str[2]) >>> 'c' 返回值:str字符串的切片操作 符号: [::]格式:str[index:index:step]例如:str = 'abcdefg' print(str[:]) >>> 'abcdefg' #取字符串所有内容,开头的0可以忽略 print(str[:3]) >>> 'abc' #取出字符串索引0-3的内容(顾头不顾尾,不包含索引3的对象) print(str[:5:2]) >>> 'ace' #取出字符串索引0-5的内容,每2个索引取一次 print(str[3:]) >>> 'defg' #取出字符串索引3开始到结尾的内容 print(str[-2:]) >>> 'fg' #取出字符串倒数第2开始到结尾的内容 返回值:str 内置方法 连接 格式:x.__add__(y)等同于x+y返回值:str 包含 格式:x.__contains__(y)返回值:bool相等 格式:x.__eq__(y)等同于x==y返回值:bool大于等于 格式:x.__ge__(y)等同于x>=y返回值:bool访问属性方法(文件操作时用) 格式:x.__getattribute__(self,name)返回值:tuple获取键值对(字典操作时用) 格式:x.__getitem__(key)返回值:键的值 大于 格式:x.__gt__(y)等同于x>y返回值:bool哈希值 格式:x.__hash__()返回值:哈希值,int类型迭代器 格式:x.__iter__()返回值:迭代器小于等于 格式:x.__le__(y)等同于x<=y返回值:bool长度 格式:x.__len__()等同于len(x)返回值:int类型小于 格式:x.__lt__()返回值:布尔类型复制 格式:x.__mul__(y)等同于x*y返回值:str注::此处的y必须是int类型 不等于 格式:x.__ne__(y)等同于x!=y返回值:bool右->左 复制 格式:x.__rmul__(y)等同于y*x返回值:str注:此处的y必须是int类型 常用方法 首字母大写,后面的小写 格式:x.capitalize() #开头第一个单词首字母大写,后面的所有字符串全部小写 例如:x = = 'i am A 好 boy' print(x.capitalize()) >>> 'I am a 好 boy' 返回值:str全部字符小写 格式:x.casefold() #字符串中所有单词的所有字母全部小写 例如:x = = 'i am A 好 boy' print(x.casefold()) >>> 'i am a 好 boy' 返回值:str居中,两边默认以空格填充 格式:x.center() #定义字符串的长度,不足长度时,两边以指定字符串进行填充 例如:x = 'abc' print(x.center(20,'*')) >>> '********abc*********' 返回值:str计数(默认全文计数) 格式:x.count(str,index1,index2) #指定开始和结束范围来统计某字符串的个数 例如:x = 'sffefwsf' print(x.count('sf'),0,8) >>> 2 返回值:int类型编码 格式:x.encode() #指定字符串的编码格式 例如:x.encode(encoding='utf-8')#转换为utf-8格式返回值:bytes以什么为结尾 格式:x.endswith(str,index1,index2) #指定字符串的开始和结束范围,判断所选区域是否是以指定字符串结尾 例如:x = 'adfd' print(x.endswith('fd',2,3)) >>> True 返回值:bool把t转换为空格 格式:x.expandtabs() #默认开头到\t为8个字节,不足以空格填充 例如:x = 'i amt At 好 boy' print(x.expandtabs()) >>> 'i am A 好 boy' 返回值:str查找 格式:x.find(str,index1,index2) #指定开始和结束的范围,查找指定区域内是否由指定的字符串(只返回查找到第一个的索引值) 例如:x = 'asdfdsfsafsaf' print(x.find('df',1,8)) >>> 2 返回值:int类型注:如果find未查找到,将返回为-1 格式化 格式:x.format(*args) #字符串的格式化可以有参数,可以无参数,可以是索引值参数,也可以是关键字参数 无参数 例如:s1 = 'I {} {} {}' print(s1.format('love','you','!')) >>> 'I love you !' 索引参数 例如:s1 = 'I {0} {1} {0} {1}' print(s1.format('love','you')) >>> 'I love you love you' 注:使用索引参数时,只能按顺序,从索引0开始 关键字参数 例如:s1 = 'I {m} {n}' print(s1.format(m = 'love',n = 'you')) >>> 'I love you' 格式限定符 填充常和对齐一起使用: ^ < > 分别是居中,左对齐和右对齐,后面带宽度 : 后面带填充的字符,只能是一个字符,默认是空格 例如: 无(位置)参数:s1 = 'I love you {}' print(s1.format(', very much !')) 'I love you , very much !' 默认居中方法:s1 = 'I love you {:^18}' print(s1.format(', very much !')) 'I love you , very much ! ' 指定字符居中:s1 = 'I love you {:*^18}' print(s1.format(', very much !')) 'I love you , very much !*' 指定字符左对齐:s1 = 'I love you {:*<18}' print(s1.format(', very much !')) 'I love you , very much !*' 指定字符右对齐:s1 = 'I love you {:*>18}' print(s1.format(', very much !')) 'I love you *, very much !' 精度与类型f 例如:s1 = '圆周率大概是{}' print(s1.format(3.1415926)) >>> '圆周率大概是3.1415926' s1 = '圆周率大概是{:.2f}'print(s1.format(3.1415926)) >>> '圆周率大概是3.14' s1 = '圆周率大概是{:.2f}'print(s1.format(3.1415926)) >>> '圆周率大概是3.1416' 注:精度一般和浮点一起使用,取值时使用四舍五入法 进制操作 主要的进制为b、d、o、x,分别是二、十、八、十六进制 例如: 十进制:s1 = 'The pen values {} yuan!'s1 = 'The pen values {:d} yuan!'print(s1.format(17)) >>> 'The pen values 17 yuan!' 二进制:s1 = 'The pen values {:b} yuan!'print(s1.format(17)) >>> 'The pen values 10001 yuan!' 八进制:s1 = 'The pen values {:o} yuan!'print(s1.format(17)) >>> 'The pen values 21 yuan!' 十六进:s1 = 'The pen values {:x} yuan!'print(s1.format(17)) >>> 'The pen values 11 yuan!' 金融字符,千分位 即, 例如:s1 = 'The phone is {}$ !' print(s1.format(10000000)) >>> 'The phone is 10000000$ !' s1 = 'The phone is {:,}$ !'print(s1.format(10000000)) >>> 'The phone is 10,000,000$ !' 返回值:str 查找 格式:x.index(str,index1,index2) #用法和find一样 返回值:int注::当index未查找到,程序将报错 非符号字符串 格式:x.isalnum() #字符串中可以有大小写,可以有数字,但不可以有符号 返回值:bool纯字母的字符串 格式:x.isalpha() #字符串中可以有大小写,但不可以有数字和符号 返回值:bool纯数字的字符串 格式:x.isdecimal() #字符串中只可以数字 返回值:bool纯数字的字符串 格式:x.isdigit() #字符串中只可以数字 返回值:bool开头字母的字符串 格式:x.isidentifier() #字符串以字母开头,可以是大小写,后面可以有数字,但数字不能开头 返回值:bool全部小写 格式:x.islower() #字符串全部是小写,也可以有数字,数字可以开头,但不能全数字 返回值:bool包含中文数字 格式:x.isnumeric() #字符串中可以有数字,也可以有中文大小写数字 返回值:bool可打印 格式:x.isprintable() #打印为空,则为假 返回值:bool空格 格式:x.isspace() #字符串中只能是空格 返回值:bool标题 格式:x.istitle() #字符串中每个单词首字母大写 返回值:bool全部大写 格式:x.isupper() #字符串中可以有数字,数字可以开头,但必须有大写字母 返回值:bool拼接 格式:x.join(str) #把字符串以指定字符串进行相连 例如:x = 'abcde' print('_'.join(x)) >>> 'a_b_c_d_e' 返回值:str左对齐 格式:x.ljust(str) #字符串左对齐,需要指定长度,不足长度时可以用指定字符串进行填充(默认以空格填充),当指定长度小于字符串长度,将会左对齐 例如:x = 'abcde' print(x.ljust(12,'*')) >>> 'abcde*******' 返回值:str全部小写 格式:x.lower() #字符串中所有单词,所有字母全部小写 #与casefold()功能一样 返回值:str去除左边空格 格式:x.lstrip() #去除对字符串左边的指定字符串,字符串中间和结尾的指定字符串不做处理,默认去除的是空格 例如:x = 'aaafdfdfaaadfdsaaa' print(x.lstrip('a')) >>> 'fdfdfaaadfdsaaa' 返回值:str字符串进行分段 格式:x.partition(str) #把字符串以从左到右第一个指定字符串为元素进行分段,以元组形式展现 例如:x = 'acbadfsadfsdfsd' print(x.partition('sa')) >>> ('acbadf', 'sa', 'dfsdfsd') 返回值:tuple字符串替换 格式:x.replace(old,new,count) #把字符串中指定的字符串替换为新字符串,默认全部替换,也可以指定替换次数,如果次数超过存在的个数,将全部替换 例如:x = 'acbadfsadfsdfsd' print(x.replace('df','A',7)) >>> 'acbaAsaAsAsd' 返回值:str右→左 查找 格式:x.rfind(str,index1,index2) #功能同find()一样 返回值:int右→左 查找 格式:x.rindex(str,index1,index2) #功能同index()一样 返回值:int右对齐 格式:x.rjust(str) #字符串右对齐,需要指定长度,不足长度时可以用指定字符串进行填充(默认以空格填充),当指定长度小于字符串长度,将会右对齐 例如:x = 'adc' print(x.rjust(6,'%')) >>> '%%%adc' 返回值:str右→左 字符串分段 格式:x.rpartition(str) #把字符串以从右到左第一个指定字符串进行分段,以元组形式展示 例如:x = 'abccbacbd' print(x.rpartition('cb')) >>> ('abccba', 'cb', 'd') 返回值:tuple字符串切片 格式:x.rsplit(str) #把字符串以指定字符串进行切片,并以列表的形式展现 例如:x = 'abccbacbd' print(x.rsplit('cb')) >>> ['abc', 'a', 'd'] 返回值:list去除右边空格 格式:x.rstrip(str) #去除字符串最右边的指定字符串,左边和中间的指定字符串不做处理,默认去除的是空格 例如:x = 'aaafdfdfaaadfdsaaa' print(x.rstrip('a')) >>> 'aaafdfdfaaadfds' 返回值:str切片 格式:x.split() #把字符串以指定字符串进行切片,并以列表的形式展现 #功能同rsplit()一样 返回值:list换行符分段 格式:x.splitlines() #把字符串以换行符进行切片,并以列表的形式展现 返回值:list以什么为开头 格式:x.startswith(str,index1,index2) #指定字符串的开始和结束范围,判断指定区域是否是以指定字符串开头 例如:x = 'adafsdaf' print(x.startswith('da',1,8)) >>> True 返回值:bool去除两边空格 格式:x.strip(str) #去除字符串两边的指定字符串,中间的指定字符串不做处理,默认去除的是空格 例如:x = 'aaadfsaaafdsfaaa' print(x.strip()) >>> 'dfsaaafdsf' 返回值:str大小写互转 格式:x.swapcase() #字符串中所有的字母进行大小写相互转换 例如:x = 'aBcdE' print(x.swapcase()) >>> 'AbCDe' 返回值:str标题化 格式:x.title() #对字符串中所有单词首字母大写,单词中间的大写全部转换为小写 例如:x = 'asd faDSdsf sdf' print(x.title()) >>> 'Asd Fadsdsf Sdf' 返回值:str全部变大写 格式:x.upper() #字符串中所有字母全部转换为大写 例如:x = 'DFdgDdfdg' print(x.upper()) >>> 'DFDGDDFDG' 返回值:str左对齐,零填充 格式:x.zfill() #字符串左对齐,指定字符串长度,不足部分以0填充 例如:x = 'afd' print(x.zfill(5)) >>> '00afd' 返回值:str映射函数 x.maketrans(*args) #把两个字符串进行一一对应,两个字符串长度必须一致 格式:str.maketrans(str1,str2) bytearray.maketrans(str1,str2) bytes.maketrans(str1,str2) 返回值:dict映射函数 x.translate(*args) #把maketrans()得到的映射表应用出来 格式:x.translate(str.maketrans(str1,str2))返回值:str

xuning715 2019-12-02 01:10:18 0 浏览量 回答数 0

问题

异步通知相关问题有哪些?

轩墨 2019-12-01 21:05:43 1249 浏览量 回答数 0

问题

C++中的左值/右值引用问题

a123456678 2019-12-01 20:09:53 846 浏览量 回答数 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: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: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: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: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

问题

JavaScript里想返回一个布尔类型的返回值,但是接到的值是未定义

吴孟桥 2019-12-01 19:42:27 1605 浏览量 回答数 1

回答

主要优点是,这是python中返回a)多个值和 b)给该值命名的唯一方法。其他选择是使用类(附加代码),返回元组(无名称,因此您必须使用索引来访问值)或仅返回单个值,这可能意味着每个人都将返回一个字典,因为这是最简单的解决方案。 它还允许包装几种方法并合并/合并其结果。最后,它允许轻松地为每个调用返回不同的值/名称对集合,例如,省略可选值或返回其他提示。

祖安文状元 2020-02-21 17:53:19 0 浏览量 回答数 0

问题

js循环异步ajax请求服务器,只有返回后计数,并发返回怎么办? 400 报错

爱吃鱼的程序员 2020-05-30 20:50:08 0 浏览量 回答数 1

问题

js循环异步ajax请求服务器,只有返回后计数,并发返回怎么办? 400 报错

优选2 2020-06-09 11:12:31 0 浏览量 回答数 1

回答

|| 和 && 首先会对第一个操作数执行条件判断,如果其不是布尔值就先进行 ToBoolean 强制类型转换,然后再执行条件 判断。 对于 || 来说,如果条件判断结果为 true 就返回第一个操作数的值,如果为 false 就返回第二个操作数的值。 && 则相反,如果条件判断结果为 true 就返回第二个操作数的值,如果为 false 就返回第一个操作数的值。 || 和 && 返回它们其中一个操作数的值,而非条件判断的结果

剑曼红尘 2020-04-02 13:43:21 0 浏览量 回答数 0

回答

一般情况下构造函数的首字母需要大写,因为我们在看到一个函数首字母大写的情况,就认定这是一个构造函数,需要跟new关键字进行搭配使用,创建一个新的实例(对象)构造函数在被调用的时候需要跟new关键字搭配使用。在构造函数内部通过this+属性名的形式为实例添加一些属性和方法。构造函数一般不需要返回值,如果有返回值如果返回值是一个基本数据类型,那么调用构造函数,返回值仍旧是那么创建出来的对象。如果返回值是一个复杂数据类型,那么调用构造函数的时候,返回值就是这个return之后的那个复杂数据类型。

茶什i 2019-12-02 03:19:59 0 浏览量 回答数 0

回答

system是个综合的操作,分解开来看就是相当于执行了1 fork 生成一个子进程。2 在子进程执行 execl("/bin/sh","sh","-c" command,(char*)0);3 waitpid 下面进入正题,返回值:1 如果fork失败了,或者waitpid返回除了EINTR之外的错误,system返回 -1;2 execl执行失败,其返回值如同shell执行了"exit(127)" 一样。3 如果上述三步都执行成功,那么,system返回值是shell的终止状态。 你的system返回256,表示还是正常执行了,shell命令的返回值是1

小旋风柴进 2019-12-02 02:33:40 0 浏览量 回答数 0

回答

system是个综合的操作,分解开来看就是相当于执行了1 fork 生成一个子进程。2 在子进程执行 execl("/bin/sh","sh","-c" command,(char*)0);3 waitpid下面进入正题,返回值:1 如果fork失败了,或者waitpid返回除了EINTR之外的错误,system返回 -1;2 execl执行失败,其返回值如同shell执行了"exit(127)" 一样。3 如果上述三步都执行成功,那么,system返回值是shell的终止状态。你的system返回256,表示还是正常执行了,shell命令的返回值是1

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

问题

[@炯轩][¥20]如何优雅的处理异常(java)?

月下丶 2019-12-01 19:27:14 523 浏览量 回答数 3

问题

窗口函数是什么?

nicenelly 2019-12-01 21:26:47 1330 浏览量 回答数 0

问题

java集合返回值异常

蛮大人123 2019-12-01 19:50:38 960 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站