VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1170|回复: 5

如何取得行号 按1,2,3,4....等

[复制链接]

2

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-16 21:00:01 | 显示全部楼层 |阅读模式
现有如下数据表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语句该如何写
长期困惑问题  现在必须解决了,拜托各位尽快帮助解决一下

回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-16 22:00:01 | 显示全部楼层
select
次序= (select count(1) from TestTable where  编号 = a.编号 and 名称 <= a.名称),
编号 ,名称,其他
from TestTable a
order by  编号,次序
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-17 05:30:01 | 显示全部楼层
--环境
create table TestTable
(
编号 varchar(6),
名称 varchar(10),
其他 varchar(50)
)

insert into TestTable select '10000',   '北京',     '阿斗随风倒'
insert into TestTable select '10000',   '河北',     'sfsaadf'
insert into TestTable select '10000',   '山西',     '23424234'
insert into TestTable select '10001',   '吃饭',     '随风萨发'
insert into TestTable select '10001',   '睡觉',     '哈哈'
insert into TestTable select '10005',   '别想了',   '2234234'
insert into TestTable select '10006',   '快点',     '3424234'
insert into TestTable select '10007',   '随风萨发', '速度分散对方'
insert into TestTable select '10007',   '324',     '随风'

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

--结果
次序        编号   名称       其他   
----------- ------ ---------- --------------------------------------------------
1           10000  北京         阿斗随风倒
2           10000  河北         sfsaadf
3           10000  山西         23424234
1           10001  吃饭         随风萨发
2           10001  睡觉         哈哈
1           10005  别想了       2234234
1           10006  快点         3424234
1           10007  324          随风
2           10007  随风萨发     速度分散对方

(所影响的行数为 9 行)
回复

使用道具 举报

2

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-17 09:00:01 | 显示全部楼层
太感谢了,那该如何只取每个编号的第一条
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-12-20 12:15:01 | 显示全部楼层
select 编号 ,名称,其他
from TestTable a
where not exists (select 1 from TestTable where 编号 = a.编号 and 名称 < a.名称)
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-22 09:00:02 | 显示全部楼层
select  编号 ,名称,其他 from TestTable where 次序=1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表