关于和并列的

要这种效果。

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

/*

标题:按某字段合并字符串之一(简单合并)

描述:将如下形式的数据按id字段合并value字段。

id value

----- ------

aa

bb

aaa

bbb

ccc

需要得到结果:

id value

------ -----------

aa,bb

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')

go

create function dbo.f_str(@id varchar(10)) returns varchar(1000)

as

begin

declare @str varchar(1000)

select @str = isnull(@str + ',' , '') + cast(value as varchar) from tb where id = @id

return @str

end

go

--调用函数

select id , value = dbo.f_str(id) from tb group by id

drop function dbo.f_str

drop 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')

go

select id, [value] = stuff((select ',' + [value] from tb t where id = tb.id for xml path('')) , 1 , 1 , '')

from tb

group by id

drop 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')

go

declare @t table(id int,value varchar(100))--定义结果集表变量

--定义游标并进行合并处理

declare my_cursor cursor local for

select id , value from tb

declare @id_old int , @id int , @value varchar(10) , @s varchar(100)

open my_cursor

fetch my_cursor into @id , @value

select @id_old = @id , @s=''

while @@FETCH_STATUS = 0

begin

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 , @value

END

insert @t values(@id_old , stuff(@s,1,1,''))

close my_cursor

deallocate my_cursor

select * from @t

drop table tb

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[SQL STUFF函数 拼接字符串 多列 合并成一列 转]http://www.zyiz.net/tech/detail-130437.html

java怎么写合并列sql_SQL STUFF函数 拼接字符串 多列 合并成一列 转相关推荐

  1. Excel函数——OFFSET函数将多列合并成一列

    最近遇到一个问题,如图所示,每个表的字段分别一列展示,不同表有公共字段,也有独有的字段,现想统计这些表一共涉及到哪些字段.基本思路就是将这些表的字段合并为一列再去重.因为涉及到70多列,复制粘贴比较耗 ...

  2. R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

    R语言tidyr包Unite()函数实战详解:多个数据列合并为一列 目录 R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

  3. Java使用guava实现:指定连接符拼接字符串

    Java使用guava实现:指定连接符拼接字符串 代码 pom.xml StringJointDemo.java 运行结果 jdk方法 代码 pom.xml <dependencies>& ...

  4. java 导出如何合并列_Java导出excel时合并同一列中相同内容的行思路详解

    一.有时候导出Excel时需要按类别导出,一大类下好几个小类,小类下又有好几个小小类,就像下图: 要实现这个也不难, 思路如下:按照大类来循环,如上就是按照张江校区.徐汇校区.临港校区三个大类循环,然 ...

  5. html变量合并列,在 Illustrator 中通过模板和变量合并数据以创建数据驱动图形

    在 Illustrator 中,使用"变量"面板,可通过将数据源文件(CSV 或 XML 文件)与 Illustrator 文档合并,轻松地创建图稿的多个变化.例如,无需手动修改模 ...

  6. 【数据库】Mysql的CONCAT()函数拼接字符串

    mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一: mysql CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为 ...

  7. mysql使用CONCAT()函数拼接字符串

  8. e-table 合并行 合并列

    先来一一个数组  [1,2,0,1,3,0,0] 比如一个e-table   有多少行,这个数组就有多少元素 1 表示正常,2 表示 当前和下面一个合并单元格,那么后一个就是0,  3表示 当前与下面 ...

  9. pandas合并列-直方图-读取word文件-merge-读取nan行

    数据分析(2) 以下是工作中遇到问题时,检索到比较好的案例, 收集起来方便自己查看. 同时,希望也能给遇到相同问题的同学节约时间, 快速检索到解决方案. 1.pandas多列合并成一列 https:/ ...

最新文章

  1. 17.SpringMVC核心技术-拦截器
  2. 李航「机器学习」最全综述
  3. mongodb数据库java接口,MongoDB —— 使用Spring Data MongoDB操作数据库
  4. OPPO大数据平台运营研发实践分享
  5. 企业微信接收消息服务器配置php,微信企业号配置及在公众号里获取用户信息
  6. python3源代码分析_分析一点python源代码
  7. FreeType 使用FT_MEM_ALLOC/FT_FREE内存操作
  8. 利用python炒股talib_TaLib在股票技术分析中的应用
  9. 真机linux系统封装rhel7.6虚拟机
  10. 音频-什么是PCM编码格式?
  11. 马氏距离 Mahalanobis Distance
  12. vscode配置opengl时无法使用glad库解决办法
  13. 批量将B站学习视频以MP4格式下载到本地
  14. 新版标准日本语高级_第12课
  15. C语言入门,编写程序,输出两个整数中的较大值。
  16. 怎么去掉input textarea 选中后的边线框,textarea 不可以拉
  17. mysql mmm 虚拟ip不通_mysql-mmm故障解决一例
  18. 面筋系列②——滴滴实习生一面凉经
  19. 基于kali2020环境,熟悉数据库服务的部署及基本验证方法及访问数据库
  20. 【天池比赛】面料剪裁利用率优化

热门文章

  1. iOS11 API 更新整理
  2. ThinkPHP 虚拟主机 跳转public主页设置
  3. 从现在看未来,在未来看现在
  4. 最实用的自用同花顺主力资金暴发进出公式
  5. vs2015 编译出错:Failed to register output......
  6. 父盒子内子盒子居中的方法
  7. (遇到问题)鼠标右键卡住且一直显示转圈
  8. 白嫖服务器——搭建个人简历网站
  9. 鸿蒙harmonyOS 方舟框架ARK使用ets的页面间转场动画的使用
  10. 十年测试老鸟聊聊移动端兼容性测试