標籤:group_concat for xml parh
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
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/47/B7/wKioL1P-xuKhIbyIAAC7JjzI-xk552.jpg" title="1.jpg" alt="wKioL1P-xuKhIbyIAAC7JjzI-xk552.jpg" />
select( select CAST(EventClass as varchar)+‘;‘
from dbo.perfom for xml path(‘‘) ) as A
結果:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/47/B7/wKioL1P-xvexgxmmAADLVoeDZv0372.jpg" title="2.jpg" alt="wKioL1P-xvexgxmmAADLVoeDZv0372.jpg" />
for xml path的參考連結:
http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html
本文出自 “SQLServer MySQL” 部落格,請務必保留此出處http://dwchaoyue.blog.51cto.com/2826417/1546125
mysql 和sqlserver的 多行合并成一行