sql基础操作之字符串拼接
2008-09-05 13:47
169 查看
又一篇笔记,以备后用!!
需求:
有表tb,表有两个字段,分别为:id,value。
表中存有数据如下:id value
1 a
1 a1
1 a2
2 b
2 b1
3 c1
3 c2
需要通过查询实现:1 a,a1,a2
2 b,b1
3 c1,c2
实现方法:
1、sql2000 使用合并函数:
create function f_tb(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(value as varchar) from tb where id = @id
set @str = right(@str , len(@str) - 1)
return(@str)
End
go
--调用自定义函数得到结果:
select distinct id ,dbo.f_tb(id) as value from t
2、sql2005 处理方式如下:
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
参考: http://topic.csdn.net/u/20080410/15/88f6491b-d9fe-4bd1-a350-22b4d5c9d415.html #3
2008-09-05 (笔记)
需求:
有表tb,表有两个字段,分别为:id,value。
表中存有数据如下:id value
1 a
1 a1
1 a2
2 b
2 b1
3 c1
3 c2
需要通过查询实现:1 a,a1,a2
2 b,b1
3 c1,c2
实现方法:
1、sql2000 使用合并函数:
create function f_tb(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(value as varchar) from tb where id = @id
set @str = right(@str , len(@str) - 1)
return(@str)
End
go
--调用自定义函数得到结果:
select distinct id ,dbo.f_tb(id) as value from t
2、sql2005 处理方式如下:
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
参考: http://topic.csdn.net/u/20080410/15/88f6491b-d9fe-4bd1-a350-22b4d5c9d415.html #3
2008-09-05 (笔记)
相关文章推荐
- sql基础操作之字符串拼接
- 代码里使用字符串操作来拼接sql语句的坏处
- 代码里使用字符串操作来拼接sql语句的坏处
- SQL基础操作_5_字符串处理
- mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作
- Sql字符串操作函数
- SQL字符串的拼接.
- EF架构~过滤导航属性等,拼接SQL字符串
- SQL字符串操作汇总
- c# cs方式操作数据库 非使用sql连接字符串直接连接数据库
- python基础(二)关于编码和字符串操作etc
- sql语句 拼接字符串 含有 单引号 ’
- SQL操作字符串及数字汇总
- R语言中字符串的拼接操作
- Sql动态查询拼接字符串的优化
- SQL数据操作基础(初级)5
- sql基础 (表操作)
- smarty基础之拼接字符串的详解
- sql T_sql 关于字符串的一些常用操作实例
- [JNI] 开发基础(6)字符串相关操作