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

在每次查询前执行 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的使用)。

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

当然我们可以这样查询:

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

SELECT STUFF(CONVERT(VARCHAR(500), ( SELECT TOP 10 ',' + BG_Country FROM dbo.BS_Budget ... 在 数据 库查询和 数据 处理中,有时我们需要将表中的多个字段进行 拼接 ,以生 新的字段。本文将介绍如何使用 SQL 查询语句来实现字段 拼接 ,并将其结果作为新的字段返回,帮助你灵活处理和展示 数据 。在 SQL 查询中,我们可以使用不同的方法将多个字段 拼接 新的字段。通过本文的介绍,你了解了在 SQL 查询中将多个字段 拼接 新的字段的方法。你学习了使用 字符串 连接操作符、 字符串 连接函数、 字符串 拼接 函数和 字符串 加法运算符来实现字段 拼接 。这些方法可以根据你的具体需求和 数据 库系统的支持进行选择,帮助你更灵活地处理和展示 数据 。 上一篇文章 跨表更新,看到自己写的 SQL 像个憨憨写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要 逗号 拼接 一个 字符串 ,也就是说要得到下面的结果: 要将结果集中某个指定的 进行 字符串 拼接 ,这要怎么做呢?主角闪亮:sparkles:登场 GROUP_CONCAT(expr) 在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组 拼接 ,就要配合关键字 GRO 用 SQL 将Oracle中同一 的多行记录 拼接 一个 字符串 SQL 将Oracle中同一 的多行记录 拼接 一个 字符串 [ sql ]-- 原始 数据 -- a 111-- b 222-- a 333-- a 444-- b 555-- 最终结果-- a 111*333*444SELECTL4.L_TIME,MAX(SUBSTR(L4.分组内容,2)) 最终字段值FROM(SELECTL3... 1、功能:将多个 字符串 连接 一个 字符串 。 2、语法:concat(str1, str2,...) 返回结果为连接参数产生的 字符串 ,如果有任何 一个 参数为null,则返回值为null。 3、举例: 例1:select concat (id, name, score) as info from tt select group_concat(`title`) from testselect group_concat(`title`,`id`) from testgroup_concat group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ' 分隔 符'])以type分组,type相同的算一条,且保留image和link的所有 数据 ,用groupBy只保留一条 数据 。可以看到 根据id 分 了三行 并且分数默认用 逗号 分割 但是有每个id有重复 数据 接下来去重。三、Laravel GROUP_CONCAT使用方法。 数据 库中存的是多条 数据 ,展示的时候需要合并 一条。group_concat 上场! 一、 MySQL 字符串 拼接 1、CONCAT函数 语法格式:CONCAT(char c1, char c2, …, char cn) ,其中char代表 字符串 ,定长与不定长均可以 连接两个 字符串 select concat(ename,sal) from emp; 连接多个 字符串 select concat(ename,':',sal) from emp; 2、"+"操作符 连接两个 字符串 select ename+sal from emp; 用在子查询中,如果有多条 数据 则把这些 数据 一条来查询出来     例如   表1   学生信息(   ID           Name)                                           1             张三               表2   学生课程(   PK           StudentID           Course)   ... 1,首先说 一个 函数STUFF,函数将 字符串 插入另一 字符串 。它在第 一个 字符串 中从开始位置删除指定长度的字符;然后将第二个 字符串 插入第 一个 字符串 的开始位置。 ST(character_expression,start,length,character_expression ) character_expression: 一个 字符 数据 表达式。character_expression 可以是常量、变量,...