在数据库中查询出id相同的记录3条,求一函数,将此3条记录,合并成一条记录输出,主要是在页面上显示sender(发送者),reciver(接收者,接收者为多人)。
比如:msgid sender reciver
1 1069 1071
1 1069 1069
1 1069 1080
比如:msgid sender reciver
1 1069 1071
1 1069 1069
1 1069 1080
解决方案 »
- 在Gridview的模板里添加了Checkbox控件,并另外添加一个Checkbox控件,实现全选功能与全部删除功能。
- ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇求短信平台设计文档,哪位高人推荐个开发短信平台的学习文档呗▇▇▇▇▇▇3Q3Q▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
- UpdatePanel前面加#问题
- 请教一个关于数据库连接已达最大连接数的问题
- 线程池操作出现的一个怪问题
- 请问一下.net中如何从右边截取字符串??
- 望指教!Asp 回发的问题
- 怪问题,在浏览器中内置解析器可以正确转换和XML和XSL文档,为什么用.net的无法转换
- 请各位兄弟帮忙
- 搜集asp.net 检测用在线的方法(答者有分)
- 如何动态的显示、隐藏表格的行?
- 我通过后台给一个input赋值,如何调用该input的onresize,onchange等前台事件呢??
set nocount on
create table test(msgid varchar(20),sender varchar(20),reciver varchar(20))
insert into test select '1','1069','1071'
insert into test select '1','1069','1069'
insert into test select '1','1069','1080'
go
--测试
select * from test
SELECT *
FROM(
SELECT DISTINCT
sender
FROM test
)A OUTER APPLY(
SELECT reciver= STUFF(REPLACE(REPLACE((
SELECT reciver FROM test N
WHERE sender = A.sender
FOR XML AUTO), '<N reciver="', ','), '"/>', ''), 1, 1, '')
)N
--删除测试环境
drop table test
set nocount off
set nocount on
create table test(msgid varchar(20),sender varchar(20),reciver varchar(20))
insert into test select '1','1069','1071'
insert into test select '1','1069','1069'
insert into test select '1','1069','1080'
go
--测试
CREATE FUNCTION get_recivers(@sender varchar(10))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r=''
SELECT @r=@r+','+reciver FROM test WHERE sender=@sender
RETURN(substring(@r,2,8000))
END
GO
select sender,dbo.get_recivers(sender) from test group by sender--删除测试环境
drop table test
drop function get_recivers
set nocount off
create function dbo.getreciver(@msgid int,@sender varchar(8))
returns varchar(200)
as
begin
declare @reciver varchar(200)
set @reciver=''
select @reciver=@reciver+reciver+',' from tablename where msgid=@msgid and sender=@sender
if @reciver<>'' set @reciver=left(@reciver,len(@reciver)-1)
return @reciver
end