一、关于使用函数的一些小方法
- 显示系统自带所有函数
show functions; - 描述指定函数的作用
desc function 函数名; - 描述函数的详情信息(一般是都是有例子的)
desc function extended 函数名;
二、函数NVL,相当于mysql中的lfnull
格式:NVL(列表名,用来替换null的值)
三、case when
格式:
case 列表名 when 表中的一个值 then 替代他的值 else 另外一个值 end
总体类似于三元运算符
如一列性别的数据均为男女,可以改写为
sum(case sex when ‘男’ then 1 else 0 end) male_count,
sum(case sex when ‘女’ then 1 else 0 end) female_count
用来分别计算男女数目
四,行转列,连接多列变成一列
concat
1,select concat(empno,’-’,ename,’-’,sal,’-’,deptno) from emp; 可以自己设置连接符
2,CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;
注意:CONCAT_WS must be “string or array”
3,collect_set(对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
collect_list(不对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行不去重汇总,产生array类型字段。
注,是对某字段
可以通过collect_set或者collect_list