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 相关文章推荐
Sql-Server数据库单表查询 4.3实验课
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
SQL Server中交叉联接的用法详解
Apr 22 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
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
PHP header函数分析详解
2011/08/06 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jQuery入门知识简介
2010/03/04 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
JS中的作用域链
2017/03/01 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
详解js类型判断
2018/05/22 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python实现简单温度转换的方法
2015/03/13 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
Python AES加密模块用法分析
2017/05/22 Python
python机器学习之神经网络(一)
2017/12/20 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Python中dict和set的用法讲解
2019/03/28 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
人事专员职责
2014/02/22 职场文书