Sqlserver 多条记录合并 转载整理
来源:互联网 发布:淘宝加微信返现 编辑:程序博客网 时间:2024/06/05 22:51
--1
create table T1 (UserID int , UserName nvarchar(50),CityName nvarchar(50));
insert into T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into T1 (UserID,UserName,CityName) values (5,'e','上海')
go
CREATE FUNCTION dbo.f_str(@id nvarchar(50))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @r nvarchar (4000)
SET @r=''
SELECT @r=@r+','+ UserName FROM T1 WHERE CityName=@id
RETURN STUFF(@r, 1, 1, '')
END
GO
-- 调用函数
SELECt CityName, value = dbo.f_str(CityName) FROM T1 GROUP BY CityName
drop table T1
drop function dbo.f_str
--2
create table T1 (UserID int , UserName nvarchar(50),CityName nvarchar(50));
insert into T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into T1 (UserID,UserName,CityName) values (5,'e','上海')
go
create function f_hb (@id nvarchar(50))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str= @str+','+cast(UserName as varchar) from T1 where CityName =@id
set @str=right(@str , len(@str) -1)
return(@str)
End
go
--调用自定义函数得到结果:
select distinct CityName ,dbo.f_hb(CityName) as value from T1
drop table T1
drop function dbo.f_hb
--3
DECLARE @T1 table(UserID int , UserName nvarchar(50),CityName nvarchar(50));
insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into @T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into @T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into @T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into @T1 (UserID,UserName,CityName) values (5,'e','上海')
SELECT B.CityName,UserList FROM (
SELECT CityName,
UserList=stuff((SELECT ','+UserName FROM @T1 WHERE CityName=A.CityName FOR XML PATH('')), 1 , 1 , '')
FROM @T1 A
GROUP BY CityName
) B
--4
create table T1 (UserID int , UserName nvarchar(50),CityName nvarchar(50));
insert into T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into T1 (UserID,UserName,CityName) values (5,'e','上海')
-- 查询处理
SELECT * FROM(SELECT DISTINCT CityName FROM T1) A
OUTER APPLY(
SELECT[value]=STUFF(REPLACE(REPLACE(
(
SELECT UserName FROM T1 N
WHERE N.CityName = A.CityName
FOR XML AUTO
), '<N UserName="', ','), '"/>', ''), 1, 1, '')
)n
- Sqlserver 多条记录合并 转载整理
- SQL : 多条记录合并
- 用 PreparedStatement 向 SqlServer 中一次性插入多条记录
- 多条记录合并成一个字符串的SQL文
- 合并多条记录的同一字段值SQL语句
- 把多条记录合并成一条的SQL语句
- mysql多条记录判断相加减合并一条
- 多条记录合并为一条统计求和
- 多条记录合并一条返回string,非clob
- sqlserver 多行合并
- sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用)
- 两条记录合并一条的 sql
- SqlServer 列数据比对 转载整理
- sql2005 同一字段的多条记录,合并成同一条记录
- mysql合并多条记录的单个字段去一条记录
- 关于oracle多条记录合并为一条记录的方法
- SQLSERVER多条插入
- sqlserver中将几条数据合并为一条数据
- python yield
- 【机房收费系统】——从三层到七层
- 猴子吃桃
- 渐变分形
- 第二章,数据类型和运算符
- Sqlserver 多条记录合并 转载整理
- 为控件设置相同的效果
- 数据交换工具Kettle
- 《剑指Offer》学习笔记--面试题22:栈的压入、弹出序列
- hdu 3339 In Action shortest path
- Nodejs 即时通信socket.io
- web 文件上传
- Caffe安装问题汇总
- awk的使用