介绍三种常用函数,空字段赋值,行转列,case when,

一、NVL函数

空字段赋值,

语法:nvl(string1,replaceValue),当某值为空时调用,

二、case when

就相当于java中switch case,记得最后一定要加end,else就相当于java中的defalut

举例:

select   dept_id,

sum(case sex when '男' then 1 else 0 end) male_count,

sum(case sex when '女' then 1 else 0 end) female_count

from  emp_sex。

三、行转列

1、concat函数说明

语法:concat(string a, string b…):返回输入字符串连接后的结果,支持任意个输入字符串

举例: SELECT concat('abc', 'def') FROM src LIMIT 1;    结果: 'abcdef'

2、★concat_ws函数(重要的是他可以拼接数组)

语法:concat_ws(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;用分隔符拼接字符串或者是数组返回一个数组

举例:SELECT concat_ws('.', 'www', array('facebook', 'com')) FROM src LIMIT 1;

'www.facebook.com'

3、★★collect_set(字段名) (非常常用,是用来返回数组类型的)------产生array类型字段

函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。将多个字符转成array数组

Hive函数之行转列相关推荐

  1. SQL PIVOT函数进行 行转列

    准备数据源 select TOP 3 F_ProtocolName as "名称",F_TotalFee as "费用" from CRM_Protocol 名 ...

  2. hive中实现行转列_Hive之行转列lateral view用法

    一般写sql经常会遇到行转列或者列转行之类的操作,就像concat_ws之类的函数被广泛的使用,今天这个也是经常要使用的拓展方法. Lateral View 语法 描述 横向视图与用户定义的表生成函数 ...

  3. hive操作(行转列,列转行)

    一.行转列 1.相关函数说明 CONCAT(string A/col, string B/col-):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, st ...

  4. oracle中创建函数行变列,oracle decode 函数实现行转列

    用decode函数,或者case when实现行转列 Oracle ----创建测试表create table student_score( name varchar2(20), subject va ...

  5. 经常用到的透视函数(行转列列转行)函数 PIVOT()UNPIVOT

    说明: 工作中经常遇到一组or一条数据按照不同类型被分成多条数据,如 一条合同的分期还款账单按照不同类型被分成本金,利息,管理费等, 数据统计工作中,一条合同一期就会分成多条合同 如 实际工作中 常需 ...

  6. Oracle 使用Pivot函数 实现行转列碰到的问题

    pivot 行转列 pivot行转列的时候,报错某个参数标识符无效 问题解决方法:尝试将结果集放到一个临时表,再使用pivot函数. 问题描述: 下面的sql中,select已经查出结果集,但加上pi ...

  7. oracle列传行函数,oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )

    create table demo(id int,name varchar(20),nums int); ---- 创建表 insert into demo values(1, '苹果', 1000) ...

  8. Oracle pivot函数动态行转列方法

    起因 工作中遇到个问题,需要支持动态行转列,方便报表展示. 起初这样写:

  9. hive中实现行转列_漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

    全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别. 举一个具体的应用场景,来设计并实现一份拉链表,最后并通 ...

最新文章

  1. DialogFragment 全屏显示
  2. WINCE下的MINGW交叉编译环境下内存崩溃地址的查找方法。
  3. 转载:使用 GNU Libtool 创建库
  4. js php 分段上传文件,php+js实现文件分块上传
  5. 推荐一本基于ASP.NET Core 3.1的实战来了
  6. emacs mysql_使用Emacs作为MySQL的客户端
  7. 人工智能(16)---长租公寓领域的智能硬件
  8. [原]sencha touch之carousel
  9. android 课堂讨论内容,Android端课堂交互应用研究与实现
  10. html仿真花卉代码,仿真鲜花幼儿园手工教案
  11. mysql运用实例_mysql应用实例
  12. Linux 下安装python3
  13. 【北京迅为】i.MX6ULL终结者RS232驱动测试RS485测试
  14. 自己整理的90分以上最新物联网技术导论期末选择填空大题总考点
  15. 笔记本装系服务器系统驱动,联想昭阳E4430A笔记本安装WINDOWS SERVER 2003 2008服务器版网卡驱动的问题...
  16. 部署企业的网络安全方案
  17. Windows10家庭版完美修改系统用户名
  18. 基带信号带宽与占空比的关系
  19. 仿iGoogle自定义首页模块拖拽效果
  20. 高富帅seajs使用示例及spm合并压缩工具露脸

热门文章

  1. 图示LDA主题模型(酒店评论数据演示)
  2. Within-sample variability-invariant loss for robust speaker recognition under noisy environments
  3. 轻松玩转iPhone 3GS(第三版)
  4. Unity3D导航网格,矩阵旋转,欧拉旋转
  5. pip 安装时报错Double requirement given: numpy==1.12.1....
  6. 麦克风声音小怎么设置 怎么调节麦克风声音
  7. 用QT实现软件与硬件绑定
  8. 利用数据与其他数据源
  9. 输了这四年你就输了一生
  10. 如何优雅判断属性值为空