要把多行数据记录中的某个相同字段合并成一个字段,如下
表 table:
-------------
col1 col2
-------------
1 a
2 b
3 c
4 d
现在要把表中的col2字段中的数据合并成一个类似于‘a;b;c;d’这样的字段,该怎么做呢?
而且如果有很多的记录或者是记录数不定,那这种方法就基本上没用了,幸好,在SQL Server中,
一些自带的函数方法可以帮我们很好地做到这一点,而且十分简单,如下示:
stuff((select DISTINCT ';'+col2 from table for xml path('')),1,1,'')
这样子就可以得到我们想要的结果‘a;b;c;d’
在这里 for xml path('')的作用是把多行数据内容串联起来成为一个数据,SQL Server 2005以后的版本支持
通过这个方法就可以得到数据‘;a;b;c;d’,但这样子得到的数据前面就多了一个分号了,不要紧,使用stuff函数就可以把数据最前面的分号给去掉,得到最终的结果了。