create table tt(name varchar(100), no int,n_date datetime)
go
insert into tt(name,no,n_date)
select 'ABC',111,'2005-12-1' union all
select 'DEF',111,'2005-6-6' union all
select 'GDD',333,'2005-8-8' union all
select 'FGH',444,'2005-8-9'select * from ttgo
--创建自定义函数
create function fn_getN_date (@no int)
returns varchar(1000)
as
begin
declare @s varchar(1000)
set @s=''
select @s=@s + ',' + convert(varchar(10),n_date,120)
from tt
where no=@no
set @s=stuff(@s,1,1,'')return @s
end
go--创建自定义函数
create function fn_getName (@no int)
returns varchar(1000)
as
begin
declare @s varchar(1000)
set @s=''
select @s=@s + ',' + name
from tt
where no=@no
set @s=stuff(@s,1,1,'')return @s
end
goselect dbo.fn_getName(no) as Name,no,dbo.fn_getN_Date(no) as N_Date
from tt
group by no
drop table tt
drop function fn_getN_date
drop function fn_getName
解决方案 »
- sql语句指点
- 如果没有运行SQLSERVER的服务器管理器,那么如何得知自己的机器上安装了几个服务器实例?
- 请教各位前辈几个关于SQL语句我所疑惑的问题,今天弄了一个下午,都绕晕头了!麻烦帮我看看!
- 请问存取过程调用另一个存取过程(带参数的)怎么作?
- 【【【存储过程能加判断控制条件在where吗】】】】】
- 请教个查询语句
- 怎樣寫這麼一個存儲過程:返回某個表的某個字段值,且這字段是個變量?
- sql 2000 如何删除重复的数据留取指定的数据
- 日语下应该选哪个collation
- 高分:有关SQL Server 2000 Driver for JDBC 的问题
- 如何用SQL语句取得数据库中的所有数据的名字?
- 如何删除指定数据库名下所有表记录信息?帮项有分,在线等
go
insert into tst(name,no,n_date)
select 'ABC',111,'2005-12-1' union all
select 'DEF',111,'2005-6-6' union all
select 'GDD',333,'2005-8-8' union all
select 'FGH',444,'2005-8-9'
declare @temp_tst table(name varchar(100),No int, n_date varchar(100))
declare mycur cursor for select * from tst
declare @name varchar(100)
declare @no int
declare @date datetime
declare @temp_no int
set @temp_no=0
declare @tmp varchar(100)
set @tmp=''
declare @temp_date varchar(100)
open mycur
fetch next from mycur into @name ,@no,@date
while(@@fetch_status=0)
begin
if(@temp_no=@no)
begin
set @tmp=@tmp+','+@name
set @temp_date=@temp_date+','+convert(varchar(100),@date,111)
insert into @temp_tst values (@tmp,@no,@temp_date)
end
set @tmp=@name
set @temp_no=@no
set @temp_date=convert(varchar(100),@date,111)
fetch next from mycur into @name,@no,@date
end
close mycur
deallocate mycur
select * from @temp_tst