SQL STUFF函数 拼接字符串
2016-03-22 12:44
441 查看
今日看到一篇文章,是关于和并列的,也研究了下,还是不错的
要这种效果。
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
这样即可。
例如 两个表 汽车分组表tb_group,和汽车表tb_car
select id, groupname, contace, mobile, begintime, endtime, parkingcount, groupType
,value = stuff((SELECT ',' + plate FROM tb_car AS t WHERE t .groupid = [tb_group].id FOR xml path('')), 1, 1, '')
from [dbo].[tb_group]
结果为
要这种效果。
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
这样即可。
例如 两个表 汽车分组表tb_group,和汽车表tb_car
select id, groupname, contace, mobile, begintime, endtime, parkingcount, groupType
,value = stuff((SELECT ',' + plate FROM tb_car AS t WHERE t .groupid = [tb_group].id FOR xml path('')), 1, 1, '')
from [dbo].[tb_group]
结果为
相关文章推荐
- Oracle数据库的锁类型
- 第二十七讲--Oracle IMU及Redo Private Strands技术
- redisTemplate keys方法 为空
- 第二十六讲--深入剖析事务槽及Oracle多种提交方式
- .net 中的 SqlBulkCopy 批量插入会锁表吗?
- mysql索引
- MongoDB 3.0新增特性一览
- MongoDB常用操作
- MemCache基础知识介绍
- SQLServer替换第一个匹配的字符串方法
- MySQL数据类型--字符串类型
- mysql字段类型详解
- MYSQL分区表测试
- PLSQL Developer如何连接远程Oracle数据库
- MySQL分库分表环境下全局ID生成方案
- InnoDB还是MyISAM 再谈MySQL存储引擎的选择
- 数据库设计之存储多值的问题
- SQL SERVER 2008 同表同列做差
- Mysql事务使用总结
- Oracle中dual表的用途介绍