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

2023-11-08

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

解决方法: 通过 group_concat 函数

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

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

或者SET GLOBAL group_concat_max_len = 10240; 

使得查询结果值变大。

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

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

补充函数方法:

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

 

一、concat()函数

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

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

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

3、举例:

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

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

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

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

但是输入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相同的效果:

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

 

三、group_concat()函数

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

例5:

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

当然我们可以这样查询:

例6:

但是这样同一个名字出现多次,看上去非常不直观。有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的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号:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql查询结果列拼接成逗号分隔的字符串 的相关文章

随机推荐

  • 4.2 配置Mysql与注册登录模块(中)

    目录 学习目标 学习内容 后端 JWT工具类 数据库修改 写具体业务API 根据token获取用户信息 注册API 前端 这节课实现了登录效果 学习目标 jwt验证 后端的API 前端登录注册页面 学习内容 前端和后端会有跨域问题 不用传统
  • Linux 中的 colcrt 命令及示例

    Linux 系统中的colcrt命令用于格式化文本处理器输出 以便可以在阴极射线管显示器上查看 它删除了下划线 删除线和下划线 这些内容无法在 CRT 上显示 因为在 CRT 屏幕上的给定位置只能生成一个字符 它还将所有下划线放在新行上 位
  • 华为服务器怎么升级2016系统,服务器怎么升级

    服务器怎么升级 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 当您购买的弹性云服务器规格无法满足业务需要时 您可以随时变
  • Ruby

    1 如何安装ralis 在线安装常常因为公司proxy server的原因产生连接问题 所以可以先到https rubygems org下载然后离线安装 gem install l rails2 3 5 gem
  • 【LeetCode刷题】-岛屿数量

    Task 思路 1 首先判断给定的二维数组是不是空的 2 对二维数组遍历一下 对每个元素进行判断 a 如果这个值等于1 那么就把计数器 1 并且对该元素四周进行深度搜索 3 返回 代码 class Solution public int n
  • 定制 findbugs规则

    come from http www 51testing com html 97 13997 211893 html Findbugs是著名的开源java静态代码分析工具 基于bytecode扫描 具备数据流分析能力 操作很简单 可以下载单
  • vue dialog 弹窗组件

    因为官方组件不是很好用所以自己写了一个弹窗组件 javascript
  • Event Driven Class OSAL 基于事件驱动的模拟操作系统

    EventDrivenClassOSAL详解 Event Driven Class OSAL 基于事件驱动的模拟操作系统 前言 什么是OSAL OSAL为 Operating System Abstraction Layer 即 操作系统抽
  • Django使用MySQL数据库出现的问题--mysqlclient库的安装

    python有的时候真的是很不友好 我的vc14库是最新的 不能装 首先明确 Django使用MySQL数据库需要MySQL python 2 7 或者MySQLclient 3 6 库的支持 但是 他们都不好装 要不网上也不会有那么多关于
  • 正弦波逆变器c语言程序源码,官方开源-EG8010单相纯正弦波逆变器驱动板资料分享...

    该项目是基于EG8010和IR2110S设计的单相纯正弦波逆变器驱动板设计 见附件下载其原理图 PCB 使用说明等 该单相纯正弦波逆变器采用专用芯片EG8010 为控制芯片 驱动芯片采用IR2110S 驱动板上集成了电压 电流 温度保护功能
  • 基于KNN的手写字符识别

    整理了一下自己之前做过的手写字符识别的资料 分享出来供大家学习交流 后续可能还会分享一些其他方法进行手写字符识别的资料 敬请期待 一 任务和设计思路 二 KNN算法实现 1 KNN算法简介 2 简单的KNN代码 3 使用sklearn的KN
  • 基于模板匹配的螺母检测(计算机视觉实验)

    文章目录 前言 实验任务与要求 1 实验情况概述 2 算法流程 3 实验结果与分析 3 1 01 jpg 和 02 jpg 检测结果 3 2 03 jpg 和 04 jpg 检测结果 3 3 05 jpg 检测结果 3 4 其它问题 更新日
  • Vmware网络配置与管理,三种网络模式、网络管理命令、配置主机名称、主机映射、防火墙、修改ip(NAT模式配通网络)操作步骤)

    一 Vmware中的虚拟机和宿主机进行通信的三种网络模式 它们分别是 1 Bridged 桥接模式 桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信 在桥接的作用下 类似于把物理主机虚拟为一个交换机 所有桥接设置的虚拟机连接到这
  • Spring注解开发之组件注册(二)

    Spring注解开发之组件注册 一 5 Import 给容器导入一个组件 给容器中注册组件 一 包扫描 组件标注注解 Controller Service Repository Component 自己写的类 二 Bean 导入的第三包里面
  • else应输入一个语句是什么意思_C++入门到精通(十),条件语句中的“否则”

    我们在说 如果 那么 的时候 经常和 否则 连用 例如 如果明天天气好 就开运动会 否则就不开 但是根据上一篇我们学到内容 我们只能这样说 如果明天天气好 就开运动会 如果明天天气不好 就不开运动会 虽然也能够把意思表达清楚 但是语句显得沉
  • 利用Shader Forge 做出树叶摆动的效果2DSprite__Unity

    基于Shader Forge的2DSprite上制作 效果图如下 Shader Forge的版本为 v1 3 8 0 unity版本为2017 1 0f3 相关的shader和Demo稍后会分享资源 喜欢的同学去下载 Shader源码如下
  • 不均衡数据集采样1——SMOTE算法(过采样)

    SMOTE Synthetic Minority Over sampling Technique 论文地址 https www jair org index php jair article download 10302 24590 SMO
  • 查询Linux服务器的配置信息常用命令

    要查询Linux服务器的配置信息 你可以执行一些命令来查看系统的硬件和软件配置 以下是一些常用的命令 1 查看CPU信息 cat proc cpuinfo 这个命令将显示你的CPU的详细信息 包括每个处理器的型号 频率 缓存等级以及每个核心
  • Jenkins:job 之间实现带参数触发

    参考 https blog csdn net wanglin lin article details 73991559 总结 安装Parameterized Trigger插件 job A使用Trigger parameterized bu
  • sql查询结果列拼接成逗号分隔的字符串

    背景 做SQL查询时会经常需要 把查询的结果拼接成一个字符串 解决方法 通过 group concat 函数 拼接的结果很长 导致拼接结果显示不全 可以通过以下方法解决 在每次查询前执行 SET SESSION group concat m