| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2862 人关注过本帖
标题:怎么对sql查询结果排名,前面加上1,2,3...的序号
只看楼主 加入收藏
qwaszhoudh
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-5
收藏
 问题点数:0 回复次数:6 
怎么对sql查询结果排名,前面加上1,2,3...的序号
Table ralation
RenId RenMing RenParentId
3 王一 9
4 王二 9
5 张一 10
6 张二 10
10 张父 15
15 张父父 Null
9 王父 Null

1 怎么可以输出下面的结果(按照它的格式,姓王的有三个,张的四个)?

项目 人数
王 3
张 4

2 不打乱顺序按照ID重新排序,排序以后在前面加上1,2,3,4,5……---
搜索更多相关主题的帖子: 序号 sql 结果 排名 查询 
2007-04-05 23:03
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

RenId RenMing RenParentId
3 王一 9
4 王二 9
5 张一 10
6 张二 10
10 张父 15
15 张父父 Null
9 王父 Null

if object_id('test') is not null
drop table test
go
create table test(Renid int,RenMing nvarchar(3),RenParentId int)
insert into test select 3,N'王一',9
union all select 4,N'王二',9
union all select 5,N'张一',10
union all select 6,N'张二',10
union all select 10,N'张父',15
union all select 15,N'张父父',null
union all select 9,N'王父',null
1.
select left(RenMing,1) as 项目,count(RenMing) 人数 from test group by left(RenMing,1)
2.
select id=(select count(1) from test where Renid<t.Renid)+1,* from test t

drop table test
go


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-05 23:22
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
收藏
得分:0 
按照ID重新排序就已经打乱顺序了.
棉花这个语句执行后是没打乱顺序,可是也没有按照ID重新排序.

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-04-06 15:26
冰封情愁
Rank: 1
等 级:新手上路
威 望:1
帖 子:32
专家分:0
注 册:2006-12-7
收藏
得分:0 

是不是要这样的结果啊?
RenId RenMing RenParentId
1 王一 9
2 王二 9
3 张一 10
4 张二 10
5 张父 15
6 张父父 Null
7 王父 Null

如果是,就用update语句
update test set renid=(select count(1) from test where renid<t.renid)+1 from test t


2007-04-08 14:17
qwaszhoudh
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-5
收藏
得分:0 
回复:(qwaszhoudh)怎么对sql查询结果排名,前面加上...

就是四楼的这个意思
这两天出去才回来,谢谢大家的帮忙

2007-04-11 09:54
daidaidai
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-5-31
收藏
得分:0 
select count(1) from test where renid<t.renid

有点不太理解,能解释下吗?
2007-04-16 14:20
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
收藏
得分:0 
直接的说就是查询表test中renid小于表t中renid的记录的行数.
t是test的别名.

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-04-17 10:33
快速回复:怎么对sql查询结果排名,前面加上1,2,3...的序号
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043891 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved