转换成为1,2,3,4,5形式
来源:互联网 发布:美颜秘籍果冻口红淘宝 编辑:程序博客网 时间:2024/05/16 09:26
合并列值
--*******************************************************************************************
表结构,数据如下:
id value
----- ------
1 aa
1 bb
2 aaa
2 bbb
2 ccc
需要得到结果:
id values
------ -----------
1 aa,bb
2 aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)
1. 旧的解决方法(在sql server 2000中只能用函数解决。)
--=============================================================================
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
--1. 创建处理函数
CREATE FUNCTION dbo.f_strUnite(@id int)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @str varchar(8000)
SET @str = ''
SELECT @str = @str + ',' + value FROM tb WHERE id=@id
RETURN STUFF(@str, 1, 1, '')
END
GO
-- 调用函数
SELECt id, value = dbo.f_strUnite(id) FROM tb GROUP BY id
drop table tb
drop function dbo.f_strUnite
go
/*
id value
----------- -----------
1 aa,bb
2 aaa,bbb,ccc
(所影响的行数为 2 行)
*/
--===================================================================================
2. 新的解决方法(在sql server 2005中用OUTER APPLY等解决。)
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 * 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
drop table tb
/*
id values
----------- -----------
1 aa,bb
2 aaa,bbb,ccc
(2 行受影响)
*/
--SQL2005中的方法2
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, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), 1, 1, '')
from tb
group by id
/*
id values
----------- --------------------
1 aa,bb
2 aaa,bbb,ccc
(2 row(s) affected)
*/
drop table tb
- 转换成为1,2,3,4,5形式
- Java 中数据转换成为JSON的形式
- 日文和英文系统不同格式时间的取得转换成为“2009-05-22”形式
- as3加密DES过程中,1、字符串转成ByteArray(byte数组)形式 ,2、ByteArray编码成base64 3、把ByteArray转换为16进制的形式的字符串
- 将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
- 将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
- Date 形式转换
- 整数转换中英文形式
- 转换成Date形式
- Java 中4字节形式数据转换为float
- 注解形式控制器 数据验证,类型转换(3)
- 注解形式控制器 数据验证,类型转换(2)
- List转换成为ArrayList
- 无根树转换成为有根树
- 数理逻辑3 -- 形式数论2
- 数理逻辑3 -- 形式数论1
- PHP正则表达式:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
- PHP正则表达式:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
- sizeof()用法汇总
- 系统分析员、系统架构师、项目经理的区别
- 美不胜收的女人
- const用法汇总
- Lift ( lambda 的新实现 )
- 转换成为1,2,3,4,5形式
- typedef用法汇总
- c嵌入式程序员应知道的几个基本问题
- sql如何获取某一个表的所有字段名,并且有一个字段的统计数
- 吸引眼球的借位摄影
- 通过hibernate去调用存储过程
- 菜鸟学习OGRE和天龙八部
- DFD
- poj1597 Uniform Generator