您的位置:首页 > 博客中心 > 数据库 >

mysql 和sqlserver的 多行合并成一行

时间:2022-03-13 23:06


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:行分隔符可以是任意的字符 。


参考链接:



在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的参考链接:


本文出自 “” 博客,请务必保留此出处

热门排行

今日推荐

热门手游