为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

合并多行记录

2011-03-05 3页 pdf 56KB 14阅读

用户头像

is_086804

暂无简介

举报
合并多行记录 sql合并两条记录:SQL 合并多行记录的思路 方法总汇 疯狂代码 http://www.crazycoder.cn/ ĵ:http:/www.crazycoder.cn/DataBase/Article69087.html SQL中合并多行记录思路方法总汇: --1. 创建表添加测试数据 CREATE TABLE tb(id , [value] varchar(10)) INSERT tb SELECT 1, 'aa' UNION ALL SELECT...
合并多行记录
sql合并两条记录:SQL 合并多行记录的思路 方法总汇 疯狂代码 http://www.crazycoder.cn/ ĵ:http:/www.crazycoder.cn/DataBase/Article69087.html SQL中合并多行记录思路方法总汇: --1. 创建表添加测试数据 CREATE TABLE tb(id , [value] varchar(10)) INSERT tb SELECT 1, 'aa' UNION ALL SELECT 1, 'bb' UNION ALL SELECT 2, 'aaa' UNION ALL SELECT 2, 'bbb' UNION ALL SELECT 2, 'ccc' --SELECT * FROM tb /**//* id value ----------- ---------- 1 aa 1 bb 2 aaa 2 bbb 2 ccc (5 row(s) affected) */ --2 在SQL2000只能用自定义实现 ----2.1 创建合并fn_strSum根据id合并value值 GO CREATE FUNCTION dbo.fn_strSum(@id ) RETURNS varchar(8000) AS BEGIN DECLARE @values varchar(8000) SET @values = '' SELECT @values = @values + ',' + value FROM tb WHERE id=@id RETURN STUFF(@values, 1, 1, '') END GO -- SELECT id, VALUE = dbo.fn_strSum(id) FROM tb GROUP BY id DROP FUNCTION dbo.fn_strSum ----2.2 创建合并fn_strSum2根据id合并value值 GO CREATE FUNCTION dbo.fn_strSum2(@id ) RETURNS varchar(8000) AS BEGIN DECLARE @values varchar(8000) SELECT @values = isnull(@values + ',', '') + value FROM tb WHERE id=@id RETURN @values END GO -- SELECT id, VALUE = dbo.fn_strSum2(id) FROM tb GROUP BY id DROP FUNCTION dbo.fn_strSum2 --3 在SQL2005/SQL2008中新解法 ----3.1 使用OUTER APPLY 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 ), '', ''), 1, 1, '') )N ----3.2 使用XML SELECT id, [values]=STUFF((SELECT ','+[value] FROM tb t WHERE id=tb.id FOR XML PATH('')), 1, 1, '') FROM tb GROUP BY id --4 删除测试表tb drop table tb /**//* id values ----------- -------------------- 1 aa,bb 2 aaa,bbb,ccc (2 row(s) affected) */ 2009-9-6 23:00:12 疯狂代码 http://www.crazycoder.cn/
/
本文档为【合并多行记录】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索