文章目录
- 1 关系运算
- 2 数学运算:
- 3 逻辑运算:
- 4 数值计算
- 4.1 1、取整函数: round
- 4.2 2、指定精度取整函数: round
- 4.3 3、向下取整函数: floor
- 4.4 4、向上取整函数: ceil
- 4.5 5、向上取整函数: ceiling
- 4.6 6、取随机数函数: rand
- 4.7 7、自然指数函数: exp
- 4.8 8、以10为底对数函数: log10
- 4.9 9、以2为底对数函数: log2
- 4.10 10、对数函数: log
- 4.11 11、幂运算函数: pow
- 4.12 12、幂运算函数: power
- 4.13 13、开平方函数: sqrt
- 4.14 14、二进制函数: bin
- 4.15 15、十六进制函数: hex
- 4.16 16、反转十六进制函数: unhex
- 4.17 17、进制转换函数: conv
- 4.18 18、绝对值函数: abs
- 4.19 19、正取余函数: pmod
- 4.20 20、正弦函数: sin
- 4.21 21、反正弦函数: asin
- 4.22 22、余弦函数: cos
- 4.23 23、反余弦函数: acos
- 4.24 24、positive函数: positive
- 4.25 25、negative函数: negative
- 5 日期函数
- 5.1 1、UNIX时间戳转日期函数: from_unixtime
- 5.2 2、获取当前UNIX时间戳函数: unix_timestamp
- 5.3 3、日期转UNIX时间戳函数: unix_timestamp
- 5.4 4、指定格式日期转UNIX时间戳函数: unix_timestamp
- 5.5 5、日期时间转日期函数: to_date
- 5.6 6、日期转年函数: year
- 5.7 7、日期转月函数: month
- 5.8 8、日期转天函数: day
- 5.9 9、日期转小时函数: hour
- 5.10 10、日期转分钟函数: minute
- 5.11 11、日期转秒函数: second
- 5.12 12、日期转周函数: weekofyear
- 5.13 13、日期比较函数: datediff
- 5.14 14、日期增加函数: date_add
- 5.15 15、日期减少函数: date_sub
- 6 条件函数
- 7 字符串函数
- 7.1 1、字符串长度函数:length
- 7.2 2、字符串反转函数:reverse
- 7.3 3、字符串连接函数:concat
- 7.4 4、带分隔符字符串连接函数:concat_ws
- 7.5 5、字符串截取函数:substr,substring
- 7.6 6、字符串截取函数:substr,substring
- 7.7 7、字符串转大写函数:upper,ucase
- 7.8 8、字符串转小写函数:lower,lcase
- 7.9 9、去空格函数:trim
- 7.10 10、左边去空格函数:ltrim
- 7.11 11、右边去空格函数:rtrim
- 7.12 12、正则表达式替换函数:regexp_replace
- 7.13 13、正则表达式解析函数:regexp_extract
- 7.14 14、URL解析函数:parse_url
- 7.15 15、json解析函数:get_json_object
- 7.16 16、空格字符串函数:space
- 7.17 17、重复字符串函数:repeat
- 7.18 18、首字符ascii函数:ascii
- 7.19 19、左补足函数:lpad
- 7.20 20、右补足函数:rpad
- 7.21 21、分割字符串函数: split
- 7.22 22、集合查找函数: find_in_set
- 8 集合统计函数
- 8.1 1、个数统计函数: count
- 8.2 2、总和统计函数: sum
- 8.3 3、平均值统计函数: avg
- 8.4 4、最小值统计函数: min
- 8.5 5、最大值统计函数: max
- 8.6 6、非空集合总体变量函数: var_pop
- 8.7 7、非空集合样本变量函数: var_samp
- 8.8 8、总体标准偏离函数: stddev_pop
- 8.9 9、样本标准偏离函数: stddev_samp
- 8.10 10.中位数函数: percentile
- 8.11 11、中位数函数: percentile
- 8.12 12、近似中位数函数: percentile_approx
- 8.13 13、近似中位数函数: percentile_approx
- 8.14 14、直方图: histogram_numeric
- 9 复合类型构建操作
- 10 复杂类型访问操作
- 11 复杂类型长度统计函数
关系运算
1、等值比较: =
语法:A=B
操作类型:所有基本类型
描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE
|
|
2、不等值比较: <>
语法: A <> B
操作类型: 所有基本类型
描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE
|
|
3、小于比较: <
语法: A < B
操作类型:所有基本类型
描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为TRUE;否则为FALSE
|
|
4、小于等于比较: <=
语法: A <= B
操作类型: 所有基本类型
描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;否则为FALSE
|
|
5、大于比较: >
语法: A > B
操作类型: 所有基本类型
描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为TRUE;否则为FALSE
|
|
6、大于等于比较: >=
语法: A >= B
操作类型: 所有基本类型
描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;否则为FALSE
|
|
注意:String的比较要注意(常用的时间比较可以先 to_date 之后再比较)
|
|
7、空值判断: IS NULL
语法: A IS NULL
操作类型: 所有类型
描述: 如果表达式A的值为NULL,则为TRUE;否则为FALSE
|
|
8、非空判断: IS NOT NULL
语法: A IS NOT NULL
操作类型: 所有类型
描述: 如果表达式A的值为NULL,则为FALSE;否则为TRUE
|
|
9、LIKE比较: LIKE
语法: A LIKE B
操作类型: strings
描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。
|
|
10、JAVA的LIKE操作: RLIKE
语法: A RLIKE B
操作类型: strings
描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。
|
|
11、REGEXP操作: REGEXP
语法: A REGEXP B
操作类型: strings
描述: 功能与RLIKE相同
|
|
数学运算:
1、加法操作: +
语法: A + B
操作类型:所有数值类型
说明:返回A与B相加的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。比如,int + int 一般结果为int类型,而 int + double 一般结果为double类型
|
|
2、减法操作: -
语法: A – B
操作类型:所有数值类型
说明:返回A与B相减的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。比如,int – int 一般结果为int类型,而 int – double 一般结果为double类型
|
|
3、乘法操作: *
语法: A * B
操作类型:所有数值类型
说明:返回A与B相乘的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。注意,如果A乘以B的结果超过默认结果类型的数值范围,则需要通过cast将结果转换成范围更大的数值类型
|
|
4、除法操作: /
语法: A / B
操作类型:所有数值类型
说明:返回A除以B的结果。结果的数值类型为double
|
|
注意:hive中最高精度的数据类型是double,只精确到小数点后16位,在做除法运算的时候要特别注意
|
|
5、取余操作: %
语法: A % B
操作类型:所有数值类型
说明:返回A除以B的余数。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
|
|
6、位与操作: &
语法: A & B
操作类型:所有数值类型
说明:返回A和B按位进行与操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
|
|
7、位或操作: |
语法: A | B
操作类型:所有数值类型
说明:返回A和B按位进行或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
|
|
8、位异或操作: ^
语法: A ^ B
操作类型:所有数值类型
说明:返回A和B按位进行异或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
|
|
9.位取反操作: ~
语法: ~A
操作类型:所有数值类型
说明:返回A按位取反操作的结果。结果的数值类型等于A的类型。
|
|
逻辑运算:
1、逻辑与操作: AND
语法: A AND B
操作类型:boolean
说明:如果A和B均为TRUE,则为TRUE;否则为FALSE。如果A为NULL或B为NULL,则为NULL
|
|
2、逻辑或操作: OR
语法: A OR B
操作类型:boolean
说明:如果A为TRUE,或者B为TRUE,或者A和B均为TRUE,则为TRUE;否则为FALSE
|
|
3、逻辑非操作: NOT
语法: NOT A
操作类型:boolean
说明:如果A为FALSE,或者A为NULL,则为TRUE;否则为FALSE
|
|
数值计算
1、取整函数: round
语法: round(double a)
返回值: BIGINT
说明: 返回double类型的整数值部分 (遵循四舍五入)
|
|
2、指定精度取整函数: round
语法: round(double a, int d)
返回值: DOUBLE
说明: 返回指定精度d的double类型
|
|
3、向下取整函数: floor
语法: floor(double a)
返回值: BIGINT
说明: 返回等于或者小于该double变量的最大的整数
|
|
4、向上取整函数: ceil
语法: ceil(double a)
返回值: BIGINT
说明: 返回等于或者大于该double变量的最小的整数
|
|
5、向上取整函数: ceiling
语法: ceiling(double a)
返回值: BIGINT
说明: 与ceil功能相同
|
|
6、取随机数函数: rand
语法: rand(),rand(int seed)
返回值: double
说明: 返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列
|
|
7、自然指数函数: exp
语法: exp(double a)
返回值: double
说明: 返回自然对数e的a次方
|
|
8、以10为底对数函数: log10
语法: log10(double a)
返回值: double
说明: 返回以10为底的a的对数
|
|
9、以2为底对数函数: log2
语法: log2(double a)
返回值: double
说明: 返回以2为底的a的对数
|
|
10、对数函数: log
语法: log(double base, double a)
返回值: double
说明: 返回以base为底的a的对数
|
|
11、幂运算函数: pow
语法: pow(double a, double p)
返回值: double
说明: 返回a的p次幂
|
|
12、幂运算函数: power
语法: power(double a, double p)
返回值: double
说明: 返回a的p次幂,与pow功能相同
|
|
13、开平方函数: sqrt
语法: sqrt(double a)
返回值: double
说明: 返回a的平方根
|
|
14、二进制函数: bin
语法: bin(BIGINT a)
返回值: string
说明: 返回a的二进制代码表示
|
|
15、十六进制函数: hex
语法: hex(BIGINT a)
返回值: string
说明: 如果变量是int类型,那么返回a的十六进制表示;如果变量是string类型,则返回该字符串的十六进制表示
|
|
16、反转十六进制函数: unhex
语法: unhex(string a)
返回值: string
说明: 返回该十六进制字符串所代码的字符串
|
|
17、进制转换函数: conv
语法: conv(BIGINT num, int from_base, int to_base)
返回值: string
说明: 将数值num从from_base进制转化到to_base进制
|
|
18、绝对值函数: abs
语法: abs(double a) abs(int a)
返回值: double int
说明: 返回数值a的绝对值
|
|
19、正取余函数: pmod
语法: pmod(int a, int b),pmod(double a, double b)
返回值: int double
说明: 返回正的a除以b的余数
|
|
20、正弦函数: sin
语法: sin(double a)
返回值: double
说明: 返回a的正弦值
|
|
21、反正弦函数: asin
语法: asin(double a)
返回值: double
说明: 返回a的反正弦值
|
|
22、余弦函数: cos
语法: cos(double a)
返回值: double
说明: 返回a的余弦值
|
|
23、反余弦函数: acos
语法: acos(double a)
返回值: double
说明: 返回a的反余弦值
|
|
24、positive函数: positive
语法: positive(int a), positive(double a)
返回值: int double
说明: 返回a
|
|
25、negative函数: negative
语法: negative(int a), negative(double a)
返回值: int double
说明: 返回-a
|
|
日期函数
1、UNIX时间戳转日期函数: from_unixtime
语法: from_unixtime(bigint unixtime[, string format])
返回值: string
说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
|
|
2、获取当前UNIX时间戳函数: unix_timestamp
语法: unix_timestamp()
返回值: bigint
说明: 获得当前时区的UNIX时间戳
|
|
3、日期转UNIX时间戳函数: unix_timestamp
语法: unix_timestamp(string date)
返回值: bigint
说明: 转换格式为\"yyyy-MM-dd HH:mm:ss\"的日期到UNIX时间戳。如果转化失败,则返回0。
|
|
4、指定格式日期转UNIX时间戳函数: unix_timestamp
语法: unix_timestamp(string date, string pattern)
返回值: bigint
说明: 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。
|
|
5、日期时间转日期函数: to_date
语法: to_date(string timestamp)
返回值: string
说明: 返回日期时间字段中的日期部分。
|
|
6、日期转年函数: year
语法: year(string date)
返回值: int
说明: 返回日期中的年。
|
|
7、日期转月函数: month
语法: month (string date)
返回值: int
说明: 返回日期中的月份。
|
|
8、日期转天函数: day
语法: day (string date)
返回值: int
说明: 返回日期中的天。
|
|
9、日期转小时函数: hour
语法: hour (string date)
返回值: int
说明: 返回日期中的小时。
|
|
10、日期转分钟函数: minute
语法: minute (string date)
返回值: int
说明: 返回日期中的分钟。
|
|
11、日期转秒函数: second
语法: second (string date)
返回值: int
说明: 返回日期中的秒。
|
|
12、日期转周函数: weekofyear
语法: weekofyear (string date)
返回值: int
说明: 返回日期在当前的周数。



