简述
在数据查询时,分组查询后想把其他字段值合并起来作为一个字段值,这是会用到wm_concat()函数。
示例
让我们创建一张test表,并且对其进行数据的填充,表test如下:
创建SQL如下:
create table TEST ( DEPT_CODE VARCHAR2(150), DEPT_NAME VARCHAR2(150), USER_CODE VARCHAR2(150), USER_NAME VARCHAR2(150) )
我们现在的要求是什么呢?
那就是要按照dept_code,dept_name分组后,将uesr_code,user_name合并为一个字段,以此来向前台提供相关数据。
查询sql如下所示:
select t.dept_code,t.dept_code,wm_concat(t.user_code),wm_concat(t.user_name) from test t group by t.dept_code,t.dept_name
查询结果如下图所示
在图中可以看出来目前已经将uesr_code,user_name合并为一个字段,而且将原本uesr_code,user_name中的内容拼接在一起了。非常满足我们的需求。
需求扩展
虽然现在实现了分组合并字段,但是有的字段里可能是会出现重复值的,这个我们又要如何去解决一下呢?
自然就是要去重了,这里就可以使用 distinct 进行去重。
查询SQL如下所示:
select t.dept_code,t.dept_code,wm_concat(distinct t.user_code),wm_concat(distinct t.user_name) from test t group by t.dept_code,t.dept_name
查询结果如下图所示
在图中我们就可以看到一个完美无缺的结果了,没有像上一步出现的重复值问题了,就此这个需求就算是搞定了。