select*from tb where 结果如下: time num 9:0123 9:021.2 9:03112 9:043 .. 希望得到如下结果: id time num 19:0123 29:021.2 39:03112 49:043 5 .. 不用临时表.
解决方法1:
select*,(selectcount(*) from tb where a.time>=time ) from tb a where
解决方法2:
select (selectcount(1) from tb b where a.time>=b.time) as ID, *from tb a
后来想一下,想到另外一种解决方法:
CREATETABLE #T([time]nvarchar(5) ,num float) INSERTINTO #T SELECT'9:01', 23UNIONALL SELECT'9:02' ,1.2UNIONALL SELECT'9:03' ,112UNIONALL SELECT'9:04' ,3 SELECT T2.[id],T1.*FROM #T AS T1 INNERJOIN (SELECT A.[time],SUM(1) AS[id] FROM #T AS A INNERJOIN #T AS B ON B.[time]<=A.[time] GROUPBY A.[time] ) AS T2 ON T2.[time]=T1.[time] DROPTABLE #T /**//* id time num 1 9:01 23 2 9:02 1.2 3 9:03 112 4 9:04 3 */