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 
                











![帆软报表FineReport入门:简单报表制作[扩展|左父格|上父格]](https://i-blog.csdnimg.cn/direct/3de47fd5dc5a49acb7ab2f5479369e57.png)






