create table tb(id int,事情 nvarchar(20),结果 nvarchar(20))
insert into tb select 1,'吃饭','吃完'
insert into tb select 2,'吃饭','吃完'
insert into tb select 1,'上班','准时到'
go
alter table tb add sid int identity(1,1)
goselect id,事情,结果,sid=(select count(*) from tb where id=a.id and sid<=a.sid) into #t from tb a--select * from #tDECLARE @SQL VARCHAR(8000)
SET @SQL='select distinct id '
SELECT @SQL= @SQL+',(select 事情 from #t where sid='''+cast(sid as nvarchar(10))
+''' and id=a.id) as 事情'
+cast(sid as nvarchar(10))
+',(select 结果 from #t where sid='''+cast(sid as nvarchar(10))
+''' and id=a.id) as 结果'
+cast(sid as nvarchar(10))
from
(select distinct sid from #t) bset @sql=@sql+' from #t a'
print @sql
exec(@sql)drop table tb,#t
insert into tb select 1,'吃饭','吃完'
insert into tb select 2,'吃饭','吃完'
insert into tb select 1,'上班','准时到'
go
alter table tb add sid int identity(1,1)
goselect id,事情,结果,sid=(select count(*) from tb where id=a.id and sid<=a.sid) into #t from tb a--select * from #tDECLARE @SQL VARCHAR(8000)
SET @SQL='select distinct id '
SELECT @SQL= @SQL+',(select 事情 from #t where sid='''+cast(sid as nvarchar(10))
+''' and id=a.id) as 事情'
+cast(sid as nvarchar(10))
+',(select 结果 from #t where sid='''+cast(sid as nvarchar(10))
+''' and id=a.id) as 结果'
+cast(sid as nvarchar(10))
from
(select distinct sid from #t) bset @sql=@sql+' from #t a'
print @sql
exec(@sql)drop table tb,#t
解决方案 »
- t-sql里varchar(5)类型的"08:30"和varchar(5)类型的"10:45"怎么比较大小呢?
- 关于插入到表的问题
- sqlserver2000中不小心用update把所有数据更新了,怎么回复到原来的数据啊
- 如何在数据库里根据特定字符分割字符串
- 请教一个面试中遇到的SQL语句的查询问题
- MS Sql Float转Varchar小数位丢失问题
- 求一个sql字符串!(把一个表的字段合计写入另一个表)!
- SQL插入记录时,能否在不同库的两张表中,插入相同的记录?
- 请问如何锁定table的一条纪录
- 所在当前部门之和,
- INTERBASE数据库中的数据表与SQL SERVER中的数据表对应,数据如何由INTERBASE导入SQL SERVER
- 数据进行倒出倒入!!在线等待啊!!!!
你中间有这一句:
sid=(select count(*) from tb where id=a.id and sid<=a.sid)这一句是什么意思我没看懂,能不能解释一下
谢谢!