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 相关文章推荐
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQL Server代理:理解SQL代理错误日志处理方法
Jun 30 SQL Server
利用 SQL Server 过滤索引提高查询语句的性能分析
Jul 15 SQL Server
SQL SERVER实现连接与合并查询
Feb 24 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server使用导出向导功能
Apr 08 SQL Server
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
SQL Server使用T-SQL语句批处理
May 20 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL Server中的逻辑函数介绍
May 25 SQL Server
如何有效防止sql注入的方法
SQL 窗口函数实现高效分页查询的案例分析
mybatis调用sqlserver存储过程返回结果集的方法
SQL Server2019数据库之简单子查询的具有方法
Apr 27 #SQL Server
SQL Server中交叉联接的用法详解
SqlServer 垂直分表(减少程序改动)
Apr 16 #SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
You might like
什么是MVC,好东西啊
2007/05/03 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
js字符串转成JSON
2013/11/07 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python设计模式之工厂模式简单示例
2018/01/09 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
采购经理岗位职责
2014/02/16 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
安全生产大检查方案
2014/05/07 职场文书
大学生工作求职信
2014/06/23 职场文书
中文专业自荐书
2014/06/29 职场文书
亲戚关系证明
2015/06/24 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记