mysql 和sqlserver的 多行合并成一行

mysql  多行合并:

mysql 内置函数 group_concat(exper  SEPARATOR " " )

exper:列明

SEPARATOR " ": 行分隔符 ,这里表示的是使用空格分隔多行

mysql> select * from tmp_02 ;

+------------+---------+

| Fclient    | ct      |

+------------+---------+

| 安卓       | 1858799 |

| IOS        |  522568 |

| 传奇客户端 |  472561 |

+------------+---------+

3 rows in set (0.00 sec)

多行合并 :

mysql> select convert(GROUP_CONCAT(concat(Fclient,‘:‘,ct) SEPARATOR "   ") using utf8)  tkey from tmp_02;

+-----------------------------------------------+

| tkey                                          |

+-----------------------------------------------+

| 安卓:1858799   IOS:522568   传奇客户端:472561 |

+-----------------------------------------------+

1 row in set (0.00 sec)

note:行分隔符可以是任意的字符 。

参考链接: http://blog.sina.com.cn/s/blog_4e808acf01009qna.html

在sqlserver中 ,2000以前的版本(包括2000)需要手动写函数实现多行合并一行的功能。

自2005之后(包括2005)内置了for xml path 的功能可以很轻松的实现多行合并一行的功能

例子:

select EventClass from  dbo.perfom

select( select CAST(EventClass as varchar)+‘;‘

from  dbo.perfom for xml path(‘‘)  ) as A

结果:

for xml  path的参考链接:

http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

时间: 2024-10-11 03:40:13

mysql 和sqlserver的 多行合并成一行的相关文章

oracle多行合并成一行

在mysql有关键字group_concat提供了类似的功能,在oracle中类似功能关键字是wm_concat.比如我有如下查询数据: 但是我希望能够显示成一行查询出来,结果图如下: 关键sql代码形如: select t.sglcheckid,wm_concat(t.salemodulename) from t_item_group_ex t where t.sglcheckid = '000********004' group by t.sglcheckid mysql 多行合并成一行的解

mysql 将多个查询结果合并成一行

mysql中的多行查询结果合并成一个 SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id=17: 利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行,如|1 | 10,20,20| 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select

logstash收集java日志,多行合并成一行

使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input { stdin { codec => multiline { pattern => "^\[" //以"["开头进行正则匹配 negate => true //正则匹配成功 what => "previous" //和前面的内容进

mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行)

数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一种展现如图----[多行变一列](合并后的数据在同一列上): sql如下: select name ,group_concat(sore Separator ';') as score from stu group by name 第二种展现如图----[多行变多列](合并后的数据在不同列上): sql如下: SELECT name , MAX(CASE type WHEN '数学' THEN

linux 将多行合并成一行

把a.txt里面的第3-6行内容复制到b.txt里面的第7行 sed -i "7i`sed -n "3,6p" a.txt |xargs`" b.txt

SQL查询多行合并成一行

问题描述:无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数,  所以,当我们在处理下列要求时,会比较麻烦:有表tb, 如下:id    value----- ------1     aa1     bb2     aaa2     bbb2     ccc需要得到结果:id     values------ -----------1      aa,bb2      aaa,bbb,ccc即, group by id, 求 value 的和(字符串相加) 1.

SQL多行合并成一行

with cte as( select groupname,GroupId from Sys_Group where GroupId in( select ReleaseRangeId from Sys_Notice_Permission where ReleaseRangeType=2 and NoticeId=20)) select LEFT(groupname,LEN(groupname)-1) as groupname, LEFT(GroupId,LEN(GroupId)-1) as G

SQL-xml(查询结果,多行合并成一行)

原始数据: select UserName from com_t_userinfo where username like '测试%' 查询结果: 需求所要结果: select UserName+',' from com_t_userinfo where username like '测试%' for xml path ('') 查询结果:

mysql中将多行数据合并成一行数据

一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.activeId,m.modelName 2 FROM activemodel am 3 JOIN model m 4 ON am.modelId = m.modelId 5 ORDER BY am.activeId 查询出的列表为图1所示: 图1 修改过后的sql语句,查询后如图2所示: 1 SELECT