| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 643 人关注过本帖
标题:怎么对sql查询结果排名,前面加上1,2,3...的序号
收藏  订阅  推荐  打印 
qwaszhoudh
Rank: 1
等级:新手上路
帖子:3
积分:130
注册:2007-4-5
怎么对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-4-5 23:03
棉花糖ONE
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:32
帖子:2987
积分:30026
注册:2006-7-13

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.bc-cn.net/user15/81152/index.shtml
2007-4-5 23:22
xiyou419
Rank: 2
等级:注册会员
威望:2
帖子:104
积分:1138
注册:2007-3-18

按照ID重新排序就已经打乱顺序了.
棉花这个语句执行后是没打乱顺序,可是也没有按照ID重新排序.

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

是不是要这样的结果啊?
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-4-8 14:17
qwaszhoudh
Rank: 1
等级:新手上路
帖子:3
积分:130
注册:2007-4-5
回复:(qwaszhoudh)怎么对sql查询结果排名,前面加上...

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

2007-4-11 09:54
daidaidai
Rank: 2
等级:注册会员
帖子:71
积分:810
注册:2006-5-31

select count(1) from test where renid<t.renid

有点不太理解,能解释下吗?
2007-4-16 14:20
xiyou419
Rank: 2
等级:注册会员
威望:2
帖子:104
积分:1138
注册:2007-3-18

直接的说就是查询表test中renid小于表t中renid的记录的行数.
t是test的别名.

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-4-17 10:33
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053124 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved