MSSQL2005中将多行合并为一行的方法,此方法不再使用sql2000中函数转换的办法
2008-05-29 10:06
555 查看
处理前数据:
id value
1 aa
1 bb
2 aaa
2 bbb
2 ccc
处理后数据
1 aa,bb
2 aaa,bbb,ccc
具体的方法如下(老汉http://blog.csdn.net/laohan8848/):
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
-- 查询处理
--select * from tb
SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY(
SELECT [values]= STUFF(REPLACE(REPLACE(
(
SELECT value FROM tb N
WHERE id = A.id
FOR XML AUTO
), '<N value="', ','), '"/>', ''), 1, 1, '')
)N
drop table tb
id value
1 aa
1 bb
2 aaa
2 bbb
2 ccc
处理后数据
1 aa,bb
2 aaa,bbb,ccc
具体的方法如下(老汉http://blog.csdn.net/laohan8848/):
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
-- 查询处理
--select * from tb
SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY(
SELECT [values]= STUFF(REPLACE(REPLACE(
(
SELECT value FROM tb N
WHERE id = A.id
FOR XML AUTO
), '<N value="', ','), '"/>', ''), 1, 1, '')
)N
drop table tb
相关文章推荐
- SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子
- SQL 行列转换,sql2000和2005--多行转一行
- 练习 3-2 编写一个函数escape(s, t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- Oracle和Mysql和mssql中将多行记录合并为一行
- Python的numpy库中将矩阵转换为列表等函数的方法
- mssql 中将汉字转换为拼音首字母方法
- 最全PDF转换器使用方法以及功能介绍 文件转换不再困难
- 请注意,上述函数与ANSI标准是不兼容的。能将整数转换为字符串而且与ANSI标准兼容的方法是使用sprintf()函数,
- 使用Pivot进行行列转换不能合并为一行的问题
- SQL 行列转换,sql2000和2005--多行转一行
- 使用CString的方法(以及用VC写DLL中"error LNK2005: _DllMain@12 already defined"的解决办法)
- Aspose.Cells使用方法大全(基本操作+转换+导出+水印添加+工作表合并)
- 网友面试题:C#,不使用任何Parse,TryParse,Convert方法,自写函数将数字字符串转换成整数
- MSSQL-字符串分离与列记录合并成一行混合使用
- 在MsSql中将 varchar 值 '1,2,3,4,5,6' 转换成数据类型 int 时失败。解决办法
- 练习 3-2 编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- MSSQL2005行列转换(使用PIVOT and UNPIVOT)
- LINQ 要转换为 SQL,Math.Round 方法需要 MidpointRounding 参数。使用“AwayFromZero”来指定 SQL 函数 ROUND。
- Linux 中将多个Word文档转换成PDF格式的方法及多个PDF文件的合并
- 实现多行合并一行的SQL-[MSSQL2005]写法