当前位置: 首页 > news >正文

hive—常用的函数整理

1、size(split(...))函数用于计算分割后字符串数组的长度

实例1):由客户编号列表计算客户编号个数

--数据准备
with tmp_test01 as (
select 'tag074445270' tag_id,'202501'busi_mon , '012399931003,012399931000' index_val
union all
select 'tag074445271' tag_id,'202501'busi_mon , '037100006340,030600050969,030600012604' index_val
union all
select 'tag074445271' tag_id,'202501'busi_mon , '' index_val
)

--计算客户编号个数
select tag_id, busi_mon,index_val,
COALESCE(SUM(case when length(trim(index_val)) >0 then size(split(index_val, ',')) else 0 end ), 0) AS index_val_0, --计算结果
size(split(index_val,",")) DD,  --数组长度
split(index_val,",") SS --字符串分隔情况
from tmp_test01
group by tag_id, busi_mon,index_val

注:1、空字符串处理‌:如果分割的字段串是空字符串(例如a=''),size(split(a, ','))的结果为1,因为空字符串被视为一个元素‌;

2、null值处理‌:如果分割的字段串是null(例如a is null),size(split(a, ','))的结果为-1

2、LPAD(string, length, pad_string) :在字符串左侧填充指定字符以达到指定长度的函数

实例1):部门编号补足4位数,客户编号补足12位数

select
LPAD(KH,12,'0')                   as Pty_Id                       --客户当事人编号
,LPAD(YYB,4,'0')                   as Inr_Org_Id                   --内部机构编号
from table_name

http://www.dtcms.com/a/30250.html

相关文章:

  • AI学习指南DeepSeek篇(6)-DeepSeek论文介绍
  • 目标检测中单阶段检测模型与双阶段检测模型详细对比与说明
  • Python 3 中 快速排序 和 归并排序
  • matlab和java混合编程经验分享
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-修改HCS配置
  • Python logger模块
  • 路由器的WAN口和LAN口有什么区别?
  • 1.14作业
  • 动态存储斐波那契数列(递归优化)
  • 基于AVue的二次封装:快速构建后台管理系统的CRUD方案
  • synchronized锁字符串
  • 语音直播交友app出海:语音直播交友系统软件源码搭建国际化发展技术层面分析
  • SHELL32!SHLoadPopupMenu函数分析之添加属性菜单项
  • Ubuntu22.04 - etcd的安装和使用
  • AI大模型发展对语音直播交友系统源码开发搭建的影响
  • python-leetcode-搜索二维矩阵 II
  • 实战:利用百度站长平台加速网站收录
  • Spring Boot 中事务的用法详解
  • 雷龙CS贴片式NAND芯片应用实践-大容量存储与多媒体设备的完美融合
  • Effective C++ 读书笔记(十二)
  • Perl 面向对象编程指南
  • 17-最长公共前缀
  • Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(1)
  • C++ 泛型编程之补充(class 和typename)
  • 【复习】Java集合
  • Vue2是如何利用Object.defineProperty实现数据的双向绑定?
  • 第十一章: vue2-3 生命周期
  • 《Operating System Concepts》阅读笔记:p62-p75
  • Uptime Kuma实现业务接口自定义逻辑监控
  • MySQL的数据类型