日期:2014-05-18  浏览次数:20596 次

如何取得行号 按1,2,3,4....等
现有如下数据表Sql2000   (表名称为TestTable)包含如下三列
编号         名称           其他
10000       北京           阿斗随风倒
10000       河北           sfsaadf
10000       山西           23424234
10001       吃饭           随风萨发
10001       睡觉           哈哈
10005       别想了       2234234
10006       快点           3424234
10007       随风萨发   速度分散对方
10007       324             随风
...           ...             ......
我要得到如下数据集该如何做
次序         编号         名称           其他
1             10000       北京           阿斗随风倒
2             10000       河北           sfsaadf
3             10000       山西           23424234
1             10001       吃饭           随风萨发
2             10001       睡觉           哈哈
1             10005       别想了       2234234
1             10006       快点           3424234
1             10007       随风萨发   速度分散对方
2             10007       324             随风
...         ...           ...             ...

也就是按编号不同,每次重1开始排,如果编号一变,再重1开始排
记录有上万条,需要在内存中完成,这样的Sql语句该如何写
长期困惑问题     现在必须解决了,拜托各位尽快帮助解决一下



------解决方案--------------------
select
次序= (select count(1) from TestTable where 编号 = a.编号 and 名称 <= a.名称),
编号 ,名称,其他
from TestTable a
order by 编号,次序