sql查询结果列拼接成逗号分隔的字符串方法


Posted in SQL Server onMay 25, 2021

背景:做SQL查询时会经常需要,把查询的结果拼接成一个字符串。

解决方法: 通过group_concat函数

sql查询结果列拼接成逗号分隔的字符串方法

拼接的结果很长,导致拼接结果显示不全,可以通过以下方法解决。

在每次查询前执行SET SESSION group_concat_max_len = 10240;

或者SET GLOBALgroup_concat_max_len = 10240;

使得查询结果值变大。

补充:SQL server 的 拼接SQL如下:

selectstuff(( select ','+ requestid from nccombinedpayment for xml path('')),1,1,'') as requestid ;

补充函数方法:

使用的例子均在下面的数据库表tt2下执行:

sql查询结果列拼接成逗号分隔的字符串方法

一、concat()函数

1、功能:将多个字符串连接成一个字符串。

2、语法:concat(str1, str2,...)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

3、举例:

例1:select concat (id, name, score) as info from tt2;

sql查询结果列拼接成逗号分隔的字符串方法

中间有一行为null是因为tt2表中有一行的score值为null。

例2:在例1的结果中三个字段id,name,score的组合没有分隔符,我们可以加一个逗号作为分隔符:

sql查询结果列拼接成逗号分隔的字符串方法

这样看上去似乎顺眼了许多~~

但是输入sql语句麻烦了许多,三个字段需要输入两次逗号,如果10个字段,要输入九次逗号...麻烦死了啦,有没有什么简便方法呢?——于是可以指定参数之间的分隔符的concat_ws()来了!!!

二、concat_ws()函数

1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)

2、语法:concat_ws(separator, str1, str2, ...)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

3、举例:

例3:我们使用concat_ws()将 分隔符指定为逗号,达到与例2相同的效果:

sql查询结果列拼接成逗号分隔的字符串方法

例4:把分隔符指定为null,结果全部变成了null:

sql查询结果列拼接成逗号分隔的字符串方法

三、group_concat()函数

前言:在有group by的查询语句中,select指定的字段要么就包含在group by语句的后面,作为分组的依据,要么就包含在聚合函数中。(有关group by的知识请戳:浅析SQL中Group By的使用)。

例5:

sql查询结果列拼接成逗号分隔的字符串方法

该例查询了name相同的的人中最小的id。如果我们要查询name相同的人的所有的id呢?

当然我们可以这样查询:

例6:

sql查询结果列拼接成逗号分隔的字符串方法

但是这样同一个名字出现多次,看上去非常不直观。有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的id呢?——使用group_concat()

1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

3、举例:

例7:使用group_concat()和group by显示相同名字的人的id号:

sql查询结果列拼接成逗号分隔的字符串方法

例8:将上面的id号从大到小排序,且用'_'作为分隔符:

sql查询结果列拼接成逗号分隔的字符串方法

例9:上面的查询中显示了以name分组的每组中所有的id。接下来我们要查询以name分组的所有组的id和score:

sql查询结果列拼接成逗号分隔的字符串方法

到此这篇关于sql查询结果列拼接成逗号分隔的字符串方法的文章就介绍到这了,更多相关sql 逗号分隔字符串内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
SQLServer 日期函数大全(小结)
Apr 08 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 SQL Server
SQL Server实现分页方法介绍
Mar 16 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
SQL Server Agent 服务无法启动
Apr 20 SQL Server
SQL Server使用T-SQL语句批处理
May 20 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 SQL Server
如何有效防止sql注入的方法
SQL 窗口函数实现高效分页查询的案例分析
mybatis调用sqlserver存储过程返回结果集的方法
SQL Server2019数据库之简单子查询的具有方法
Apr 27 #SQL Server
SQL Server中交叉联接的用法详解
SqlServer 垂直分表(减少程序改动)
Apr 16 #SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
You might like
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
送货司机岗位职责
2013/12/11 职场文书
施工班组长岗位职责
2014/01/05 职场文书
学生期末评语大全
2014/04/30 职场文书
瘦西湖导游词
2015/02/03 职场文书
讲座通知范文
2015/04/23 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript