CL传媒头像

CL传媒

客服VX:coolfensi,客服QQ:2451468936(QQ/微信客服只做引导和站点通知,不闲聊。有站点内业务疑问以及订单问题的话,请点击【CL-在线售后客服窗口】进行会话)

  • 文章104237
  • 阅读9741722

人生倒计时

  • 今日已经过去小时
  • 这周已经过去
  • 本月已经过去
  • 今年已经过去个月
首页 最新知识 正文内容

关于impaladecode的信息

客服VX(coolfensi) 最新知识 2023-01-31 12:01:15 42

impala条件判断函数

1、coalesce(T v1, T v2, ...)

联系方式:微信:coolfensi
(使用浏览器扫码进入在线客服窗口)
复制联系方式

返回第一个不为null的v,全部为null则返回null

2、decode(T expression, T search1, T result1 [, T search2, T result2 ...] [, T default] )

根据t的值返回不同result

3、if(BOOLEAN condition, T ifTrue, T ifFalseOrNull)

4、ifnull(a,b)、isnull(a,b)、nvl(a,b)

a为null时返回b,否则返回a

5、nullif(T expr1, T expr2)

nullif(a,b) a=b时返回null,否则返回a;a为null时,返回null

6、nullifzero(T numeric_expr)

0返null

7、nullvalue(T expression)

null返回true,否则返回false

8、nvl2(T a, T ifNull, T ifNotNull)

nvl2(a,b,c) a为null时返回c,否则返回b

9、zeroifnull(T numeric_expr)

null返0

impala 中不支持oracle中的哪些

5 Function

指数据库内置的function,不讨论UDF。另外,操作符都不比较了,区别不大。

5.1 数学函数

功能 Oracle Hive Impala

ABS 绝对值,有 有 有

SIN/SINH/ASIN/COS/COSH/ACOS/TAN/TANH/ATAN/ATAN2

三角函数

其中ATAN2接受两个参数(二维平面中的坐标)

没有SINH/COSH/TANH/ATAN2 同hive

BITAND 按位与,有

CEIL 天花板值,有 有,还有个别名CEILING 有,同hive

EXP e的多少次,有 有,还有个函数E()返回e 有,同hive

FLOOR 地板值,有 有 有

LN 以e为底的log,有 有 有

LOG 以某个double为底的log,有 有,还有两个特殊底的log:LOG2和LOG10 有,同hive

MOD Oracle的MOD的计算方式为MOD(n2,n1)=n2 - n1 * FLOOR(n2/n1),这与经典取模还不同,比如Oracle的MOD(-11,4)=-3,但经典取模等于1 在hive里取模用PMOD,返回值一定是个正数,比如PMOD(-11,4)=1。但这与经典取模还是不同,比如PMOD(-11,-4)=1,但经典取模等于-3 Impala的PMOD和hive的PMOD相同,另外Impala还有个FMOD和Oracle的MOD相同

POWER 求幂,有 有,还有个别名POW 有,同hive

REMAINDER 取余,REMAINDER(n2,n1)=n2 - n1 * FLOOR(n2/n1)

ROUND 舍入,支持1个参数和2个参数两种版本

另外还有一个BROUND,使用HALF_EVEN舍入模式,见官方手册

有,同Oracle

SIGN 符号函数,有 有 有

SQRT 开方,有 有 有

TRUNC 截取数值的小数点后多少位(如果是负值则往前推)

DEGREES/RADIANS 角度/弧度互转 同hive

POSITIVE/NEGATIVE 相当于在数值前加+/-号(因此没什么卵用) 同hive

PI 返回pi值 同hive

FACTORIAL 阶乘,1.2.0以后才有

CBRT 求立方根,1.2.0以后才有

SHIFTLEFT/SHIFTRIGHT/SHIFTRIGHTUNSIGNED 按位左移/右移/无符号右移

GREATEST/LEAST 返回一串值中的最大/最小值,这串值的类型可以是任意,只要可比较大小(所以其实不是数学函数而是通用比较) 有,1.1.0以后 有

5.2 字符(串)函数

功能 Oracle Hive Impala

ASCII 输入必须char,返回该字符的ascii数值 输入String,返回该String第一个字符的ascii数值 同hive

BASE64 / UNBASE64 将二进制值转为base64的String(UN则是反向)

CONCAT

CONCAT(char1, char2)

char或char2均可为CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, or NCLOB之一

concat(string|binary A, string|binary B...)

可以有多个参数

另外提供CONCAT_WS用于指定特殊分隔符的连接

同hive(除了不支持binary类型),且也有CONCAT_WS

DECODE/ENCODE

string decode(binary bin, string charset)

binary encode(string src, string charset)

编码和解码用的,用于支持hive特有的binary类型

(其实oracle和impala也有DECODE,但作用完全不同,见条件函数中的DECODE)

FIND_IN_SET

find_in_set(string str, string strList)

strList是用’,’分割的一组string,该函数将寻找strList中第一个精确匹配的str

同hive

FORMAT_NUMBER 将数字格式化为string

GET_JSON_OBJECT 抽取JSON对象,不常用

IN_FILE

in_file(string str, string filename)

检测str是否为filename对应文件中的某行,不常用

INITCAP 将每个单词(以空白分隔)转换为首字母大写其余小写的形式 同oracle,1.1.0开始有 同oracle

INSTR

{ INSTR

| INSTRB

| INSTRC

| INSTR2

| INSTR4

}

(string , substring [, position [, occurrence ] ])

搜索子串,不同数据类型调用名不同,最多可带四个参数,其中第三个是开始位置,第四个是出现的第几次

instr(string str, string substr)

只接受两个参数

同hive

LENGTH

{ LENGTH

| LENGTHB

| LENGTHC

| LENGTH2

| LENGTH4

}

(char)

串长,不同数据类型调用名不同

有(仅LENGTH) 同hive

LEVENSHTEIN 返回两个串的Levenshtein距离(编辑距离)1.2.0后才有

LOCATE 特殊情况的INSTR,可以指定匹配的开始位置。Oracle因为本来INSTR就支持所以并不需要该函数 同hive

LOWER 转小写 有,且有一个别名叫LCASE 同hive

LPAD / RPAD

LPAD(expr1, n [, expr2 ])

在expr1之前用expr2填充n个字符,如expr2省略默认用n个单空格填充。RPAD类似只是在右边

有,但expr2不能省略 同hive

LTRIM / RTRIM

LTRIM(char [, set ])

去掉char左侧包含在set中的字符,如省略set,则只去除空格符。RTRIM类似只是在右边

有,但没有set参数,即只能去除空格符 同hive

关于impaladecode的信息 第1张

impala中date用什么类型

5 Function

指数据库内置的function,不讨论UDF。另外,操作符都不比较了,区别不大。

5.1 数学函数

功能 Oracle Hive Impala

ABS 绝对值,有 有 有

SIN/SINH/ASIN/COS/COSH/ACOS/TAN/TANH/ATAN/ATAN2

三角函数

其中ATAN2接受两个参数(二维平面中的坐标)

没有SINH/COSH/TANH/ATAN2 同hive

BITAND 按位与,有

CEIL 天花板值,有 有,还有个别名CEILING 有,同hive

EXP e的多少次,有 有,还有个函数E()返回e 有,同hive

FLOOR 地板值,有 有 有

LN 以e为底的log,有 有 有

LOG 以某个double为底的log,有 有,还有两个特殊底的log:LOG2和LOG10 有,同hive

MOD Oracle的MOD的计算方式为MOD(n2,n1)=n2 - n1 * FLOOR(n2/n1),这与经典取模还不同,比如Oracle的MOD(-11,4)=-3,但经典取模等于1 在hive里取模用PMOD,返回值一定是个正数,比如PMOD(-11,4)=1。但这与经典取模还是不同,比如PMOD(-11,-4)=1,但经典取模等于-3 Impala的PMOD和hive的PMOD相同,另外Impala还有个FMOD和Oracle的MOD相同

POWER 求幂,有 有,还有个别名POW 有,同hive

REMAINDER 取余,REMAINDER(n2,n1)=n2 - n1 * FLOOR(n2/n1)

ROUND 舍入,支持1个参数和2个参数两种版本

另外还有一个BROUND,使用HALF_EVEN舍入模式,见官方手册

有,同Oracle

SIGN 符号函数,有 有 有

SQRT 开方,有 有 有

TRUNC 截取数值的小数点后多少位(如果是负值则往前推)

DEGREES/RADIANS 角度/弧度互转 同hive

POSITIVE/NEGATIVE 相当于在数值前加+/-号(因此没什么卵用) 同hive

PI 返回pi值 同hive

FACTORIAL 阶乘,1.2.0以后才有

CBRT 求立方根,1.2.0以后才有

SHIFTLEFT/SHIFTRIGHT/SHIFTRIGHTUNSIGNED 按位左移/右移/无符号右移

GREATEST/LEAST 返回一串值中的最大/最小值,这串值的类型可以是任意,只要可比较大小(所以其实不是数学函数而是通用比较) 有,1.1.0以后 有

5.2 字符(串)函数

功能 Oracle Hive Impala

ASCII 输入必须char,返回该字符的ascii数值 输入String,返回该String第一个字符的ascii数值 同hive

BASE64 / UNBASE64 将二进制值转为base64的String(UN则是反向)

CONCAT

CONCAT(char1, char2)

char或char2均可为CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, or NCLOB之一

concat(string|binary A, string|binary B)

可以有多个参数

另外提供CONCAT_WS用于指定特殊分隔符的连接

同hive(除了不支持binary类型),且也有CONCAT_WS

DECODE/ENCODE

string decode(binary bin, string charset)

binary encode(string src, string charset)

编码和解码用的,用于支持hive特有的binary类型

(其实oracle和impala也有DECODE,但作用完全不同,见条件函数中的DECODE)

FIND_IN_SET

find_in_set(string str, string strList)

strList是用’,’分割的一组string,该函数将寻找strList中第一个精确匹配的str

同hive

FORMAT_NUMBER 将数字格式化为string

GET_JSON_OBJECT 抽取JSON对象,不常用

IN_FILE

in_file(string str, string filename)

检测str是否为filename对应文件中的某行,不常用

INITCAP 将每个单词(以空白分隔)转换为首字母大写其余小写的形式 同oracle,1.1.0开始有 同oracle

INSTR

{ INSTR

| INSTRB

| INSTRC

| INSTR2

| INSTR4

}

(string , substring [, position [, occurrence ] ])

搜索子串,不同数据类型调用名不同,最多可带四个参数,其中第三个是开始位置,第四个是出现的第几次

instr(string str, string substr)

只接受两个参数

同hive

LENGTH

{ LENGTH

| LENGTHB

| LENGTHC

| LENGTH2

| LENGTH4

}

(char)

串长,不同数据类型调用名不同

有(仅LENGTH) 同hive

LEVENSHTEIN 返回两个串的Levenshtein距离(编辑距离)1.2.0后才有

LOCATE 特殊情况的INSTR,可以指定匹配的开始位置。Oracle因为本来INSTR就支持所以并不需要该函数 同hive

LOWER 转小写 有,且有一个别名叫LCASE 同hive

LPAD / RPAD

LPAD(expr1, n [, expr2 ])

在expr1之前用expr2填充n个字符,如expr2省略默认用n个单空格填充。RPAD类似只是在右边

有,但expr2不能省略 同hive

LTRIM / RTRIM

LTRIM(char [, set ])

去掉char左侧包含在set中的字符,如省略set,则只去除空格符。RTRIM类似只是在右边

有,但没有set参数,即只能去除空格符 同hive

文章目录
    搜索