concat,concat_ws,group_concat函数用法

concat,concat_ws,group_concat函数用法

一、concat()函数

员工在部门组织树形结构下查询点击左侧部门树节点查询多少员工
功能:将多个字符串拼接成一个字符串
语法:concat(str1,str2,…)
返回结果为连接参数产生的字符串
如果有任何一个参数为NULL 则返回值NULL

## 例子一
select concat(name,score) from test_table;
## 例子二
select concat(name,'-',score) from test_table;

注:-符号如果参数多的话需要更多的-符号 因此需要concat_ws()

二、concat_ws()函数

功能:一次性指定分隔符
语法:concat_ws(separator,str1,str2,…)
说明:第一个参数指定分隔符 分隔符不能为空 如果为NULL 则返回值NULL

## 分隔符号为{-}
select concat_ws('-',name,score) from test_table;
## 分隔符号为{null空值}===》结果为null
select concat_ws(null,name,score) from test_table;

三、group_concat()函数

1.功能:将group by产生的同一个分组中的值连接起来 返回一个字符串结果
2.语法 group_concat([distinct]要连接的字段 [order by 排序字段 asc/desc][separator’分隔符’])
说明:通过使用distinct可以排除重复值 如果希望对结果中的值进行排序 可以使用order by子句 separator是一个字符串值
缺省为一个逗号

SQL水平较高直接看第四个
SQL水平较高直接看第四个
SQL水平较高直接看第四个
注意:
注意下列SQL语句中的逗号与双引号是否为英文,复制到编辑器中,自行修改
注意下列SQL语句中的逗号与双引号是否为英文,复制到编辑器中,自行修改


## 一: group_concat()函数例子-使用group_concat()和group by显示相同名字的人的id号
select name,group_concat(id) from test_table group by name;

## 二:group_concat()函数例子-将上面的id号从小到大排序 且用'_'作为分隔符
select name,group_concat(id order by id asc '_') from test_table group by name;

## 三:id,score同时
select name,group_concat(id,score order by id asc '_') from test_table group by name;

## 四:id,score同时
select name,group_concat(concat_ws('_',id,score) order by id asc '_') from test_table group by name;



## 简单例子-包含在group by语句后面作为分组的依据
select name,min(id) from test_table  group by name;

你可能感兴趣的:(Mysql,数据库,java,sql)