SQL——连接字符串常用函数

\quad \quad 在Select数据时,我们往往需要将数据进行连接后进行回显。很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数。在SQL中,常见的字符串连接函数有concat(),group_concat(),concat_ws()。

1、concat( )

\quad \quad 返回结果为连接参数产生的字符串。如有任何一个参数为NULL,则返回值为 NULL。可以有一个或多个参数。

语法:

CONCAT(str1,str2,)       

参数:

要连接的各个字符串

eg:
牛客网第50题
将employees表中的所有员工的last_name和first_name通过(’)连接起来。(sqlite不支持concat,请用||实现,mysql支持concat)

select concat(last_name,"'",first_name)  as name from employees;

2、concat_ws( )

\quad \quad CONCAT_WS( )代表 CONCAT With Separator,是CONCAT()的特殊形式。

语法:

 CONCAT_WS(separator,str1,str2,)

参数:

separator:第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。

str1,str2,…:其他参数代表要连接的各个字符串。然而,函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

eg
对于解答上述题,代码为:

select concat_ws("'",last_name,first_name)  as name from employees;

3、group_concat( )

\quad \quad GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。

语法:

group_concat( DISTINCT str1 Order BY 排序字段 ASC/DESC  separator '分隔符')

参数:

[DISTINCT]:可选关键字,如果想要一组内的结果没有重复元素,则就带上这个关键字

str1:要连接的字符串

Order BY 排序字段 ASC/DESC:可选关键字,如果组内元素需要排序,则带上它

separator '分隔符':一个组内以什么样的分割符进行连接,默认的情况下是以逗号的形式连接。

eg:

表结构以及数据如下:

SELECT * FROM testgroup;

在这里插入图片描述
1、每个id为一行 在前台每行显示该id所有分数,并按id进行排序

SELECT id,GROUP_CONCAT(score) FROM testgroup GROUP BY id;

在这里插入图片描述
可以看到,根据id 分成了三行,并且分数默认用 逗号 分割, 但是有每个id有重复数据 接下来可以考虑去重。

2、每个id为一行 在前台每行显示该id所有分数且分数不能重复,并按id进行排序。

select id group_concat(distinct score) from testgroup group by id;

在这里插入图片描述
3、每个id为一行 在前台每行显示该id所有分数且所有分数之间用“;”分割,不能重复,并按id进行排序。

select id,group_concat(score separator ';') from testgroup group by id;

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值