赞
踩
先介绍一下concat函数:
concat函数用于将两个字符串连接成一个字符串
concat_ws也是将两个字符串连接成一个字符串,concat_ws需要指定分隔符
区别在于:
concat所要连接的字符串中出现了null,则整体连接结果为null
concat_ws则不然,只要有一个字符串不为null,就不会返回null,concat_ws需要指定分隔符
concat语句:
- select concat('yun','ze');
-
- 执行结果:
- yunze
- select concat('yun','ze',null);
-
- 执行结果:
- null
concat_ws语句:
- select cancat_ws('','yun','ze',null);
-
- 执行结果:
- yunze
- select concat_ws('.','baidu','com');
-
- 执行结果:
- baidu.com
- select concat('.',array('www','baidu','com'));
-
- 执行结果:
- www.baidu.com
collect_set是将某列元素转化为数组返回
注意:collect_set无序且会去重
- select collect_set(t1.name) name
- from person_info t1;
-
- 执行结果:
- ["张三","李四","王五","赵六"]
将collect_set与concat_ws结合起来使用:
- select concat_ws('|',collect_set(t1.name)) name
- from person_info t1;
-
- 执行结果:
- 张三|李四|王五|赵六
扩展:
- select t1.base,
- concat_ws('&',collect_set(t1.name)) as name
- from
- (select
- name,concat(constellation,',',blood_type)
- as base
- from db_2021213776.person_info)t1
- group by t1.base;
执行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。