SQL STUFF函数 拼接字符串
来源:互联网 发布:unity3d 打包ios 详细 编辑:程序博客网 时间:2024/06/15 01:52
今日看到一篇文章,是关于和并列的,也研究了下,还是不错的
要这种效果。
create table tb(idint,value varchar(10))
insert into tbvalues(1,'aa')
insert into tbvalues(1,'bb')
insert into tbvalues(2,'aaa')
insert into tbvalues(2,'bbb')
insert into tbvalues(2,'ccc')
go
/* stuff(param1, startIndex, length, param2)
说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/
SELECT id,
value = stuff
((SELECT ',' + value
FROM tb AS t
WHERE t .id = tb.id FOR xml path('')), 1, 1, '')
FROM tb
GROUP BY id
这样即可。
===================================================================================
收集的资料
/*标题:按某字段合并字符串之一(简单合并)作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)时间:2008-11-06地点:广东深圳描述:将如下形式的数据按id字段合并value字段。id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id value------ -----------1 aa,bb2 aaa,bbb,ccc即:group by id, 求 value 的和(字符串相加)*/--1、sql2000中只能用自定义的函数解决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')gocreate function dbo.f_str(@id varchar(10)) returns varchar(1000)asbegin declare @str varchar(1000) select @str = isnull(@str + ',' , '') + cast(value as varchar) from tb where id = @id return @strendgo--调用函数select id , value = dbo.f_str(id) from tb group by iddrop function dbo.f_strdrop table tb--2、sql2005中的方法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')goselect id, [value] = stuff((select ',' + [value] from tb t where id = tb.id for xml path('')) , 1 , 1 , '')from tbgroup by iddrop table tb--3、使用游标合并数据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')godeclare @t table(id int,value varchar(100))--定义结果集表变量--定义游标并进行合并处理declare my_cursor cursor local forselect id , value from tbdeclare @id_old int , @id int , @value varchar(10) , @s varchar(100)open my_cursorfetch my_cursor into @id , @valueselect @id_old = @id , @s=''while @@FETCH_STATUS = 0begin if @id = @id_old select @s = @s + ',' + cast(@value as varchar) else begin insert @t values(@id_old , stuff(@s,1,1,'')) select @s = ',' + cast(@value as varchar) , @id_old = @id end fetch my_cursor into @id , @valueENDinsert @t values(@id_old , stuff(@s,1,1,''))close my_cursordeallocate my_cursorselect * from @tdrop table tb
- SQL STUFF函数 拼接字符串
- SQL STUFF函数 拼接字符串
- SQL STUFF函数 拼接字符串
- SQL STUFF函数 同一列值拼接 拼接字符串
- sql函数拼接字符串
- SQL 字符串拼接函数
- SQL字符串函数Stuff的一个用法
- SQL中的Stuff()函数
- SQL中的Stuff()函数
- SQL 中的Stuff函数
- sql stuff函数
- SQL常用函数 Stuff()
- sql STUFF函数用法
- sql stuff 函数
- SQL SERVER使用STUFF函数拼接记录为逗号分隔符
- sql 函数字符串拼接函数concat()
- SQL函数学习---------STUFF()函数
- SQL server 中的stuff 函数
- 证人的记忆
- 约瑟夫环问题的优化
- MindManager 把你的思绪记下来
- ff4.0中无法用window.open打开网页
- ffmpeg音视频分离命令
- SQL STUFF函数 拼接字符串
- DropDownList下拉框绑定树行结构
- Oracle 10g内存结构
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2
- HDU2639 Bone Collector II 背包K优解
- 简单的广播发送与接收
- ArrayList和LinkedList的区别
- 【学习笔记】Mysql中锁定机制介绍及优化建议
- zoj 2812 Quicksum 水题