前言
我们在DataWorks空间下做数据开发时会经常用到大量的函数,本文主要讲解日常大量会接触到的一些。
常用函数与关键词:
1、coalesce(expr1,expr2)
返回列表中第一个非null的值
2、concat(string A,string B)
将参数中的所有字符串连接在一起 如果没有参数或者有某个参数为null就返回null
3、cast(expr as )
将表达式的结果转换成目标类型
4、ROUND(column_name,decimals) 函数
用于把数值字段(column_name)舍入为指定的小数位数(decimals)
5、trans_cols(num_keys,key1,key2…,col1,col2)
将一行数据转化多行数据,将不同的列转化为行 属于UDTF(输入一行数据,输出多行数据)
例如:一行数据A B C D转化为ABC ABD 则写成trans_cols(2,A,B,C,D) as (idx,A,B,key)
6、 ascii(expr)
将参数字符串的第一个字符转化成ascii码值,ascii(’’) = 0
7、decode(expr1,expr2,expr3,[expr4,expr5]expr6) 代替if-else if-else结构,if expr1 = 8、expr2 then expr3 else if expr1=expr4 then expr5… else expr6
9、rpad(string str, int len, string pad) :
返回指定长度(len)的字符串,给定字符串(str)长度小于指定长度时,由指定字符(pad)从右侧填补。例如:rpad(‘12345’, 6, ‘0’)返回为’123456’
10、GREATEST函数: 返回输入参数中最大的一个
SELECT GREATEST(9,99,999,9999,99999);
11、LEAST函数: 返回输入参数中最小的一个
SELECT LEAST(9,99,999,9999,99999);
12、UNIQUE_ID函数: 返回一个随机的唯一id,32位字符串
SELECT UNIQUE_ID();
13、UUID函数: 返回一个随机的唯一id,32位字符串
SELECT UUID();
常用关键字
1、having:MaxCompute SQL的WHERE关键字无法与合计函数一起使用,此时您可以使用HAVING子句来实现。例如:
SELECT Customer,SUM(OrderPrice) FROM Orders
2、GROUP BY Customer
3、HAVING SUM(OrderPrice)<2000
4、Left Outer Join:
左连接。返回左表中的所有记录,即使右表中没有与之匹配的记录。
5、Right Outer Join:右连接。返回右表中的所有记录,即使左表中没有与之匹配的记录。
6、Full Outer Join:全连接。返回左右表中的所有记录。
7、Inner Join:内连接,关键字inner可以省略。表中存在至少一个匹配时,inner join返回行。
8、delete:删除表的内容,表的结构还存在,不释放空间,可以回滚恢复;
9、drop:删除表内容和结构,释放空间,没有备份表之前要慎用;
10、truncate:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用;drop > truncate > delete