当前位置:编程学习 > C#/ASP.NET >>

一条sql 面试题~~,求解~

数据表 class

ID     title

12     上海
13     湖北
16     北京  
19     深圳
23     武汉
54     成都
58     杭州

请按以下方式查出数据
5   杭州
4   成都
3   武汉
2   深圳
1   北京 --------------------编程问答-------------------- 可以利用rownum()来实现 --------------------编程问答--------------------
select row_number() over(order by ID) as row_number,inspection_id from  class order by row_number desc
--------------------编程问答-------------------- 喔,select后面还要加个top 5 --------------------编程问答--------------------
select row_number() over(order by ID) as row_number,inspection_id from  class order by row_number desc
--------------------编程问答--------------------
SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS id,   title FROM table
--------------------编程问答-------------------- 好像Sqlserver里和Oralce里面实现不一样,因为系统提供的函数不一样。 --------------------编程问答-------------------- Access 的啊。好象执行不了哦~ --------------------编程问答-------------------- select row_number() over(order by ID) as row_number,inspection_id from  class 
order by row_number desc
--------------------编程问答--------------------
引用 3 楼 soulsteal 的回复:
喔,select后面还要加个top 5

加了也不对,显示的为
7
6
5
4
3 --------------------编程问答-------------------- 我的答案是:


select  row_number() over(order by ID) as row_number,sell from class where title in 
 (select top 5 title from class) order by row_number desc
--------------------编程问答-------------------- 用模糊查找的方法试试吧 --------------------编程问答-------------------- 路过,我看不懂。现在还不知道在2005中怎样去用建立一个数据库然后怎样去用了
哪位仁兄有没有实例教程
--------------------编程问答-------------------- if object_id('[dbo].[class]') is not null
drop table class
create table class(id int,title nvarchar(50));
insert into class values(12,'上海');
insert into class values(13,'湖北');
insert into class values(16,'北京');
insert into class values(19,'深圳');
insert into class values(23,'武汉');
insert into class values(54,'成都');
insert into class values(58,'杭州');

select row_number() over(order by id asc) as id,title from(select top(5) * from  class order by id desc) as a 
order by id desc --------------------编程问答--------------------
引用 10 楼 q107770540 的回复:
我的答案是:

SQL code

select  row_number() over(order by ID) as row_number,sell from class where title in 
 (select top 5 title from class) order by row_number desc


补充一下;


select  row_number() over(order by ID) as row_number,sell from class where title in 
 (select top 5 title from class order by ID desc) order by row_number desc
--------------------编程问答-------------------- ID倒叙排列?
--------------------编程问答-------------------- 用ACCESS试一下啊,大哥们~~ --------------------编程问答-------------------- sql2005 就用row_number()
其他的可以 查询一个自增编号 然后在按他的倒序排列就好了

select top 5 * from (select identity(1,1) as num,title from tablename)t order by t.num desc
--------------------编程问答-------------------- sql2005 就用row_number()
其他的可以 查询一个自增编号 然后在按他的倒序排列就好了

select top 5 * from (select identity(1,1) as num,title from tablename)t order by t.num desc
--------------------编程问答--------------------  没人用ACCESS吗? --------------------编程问答-------------------- SQL Server 还是 Oracle? --------------------编程问答-------------------- 是ACCESS数据库啊~~ --------------------编程问答-------------------- 1条... --------------------编程问答-------------------- select  row_number() over(order by ID) as row_number,title from class where title in 
(select top 5 title from class order by id desc) order by row_number desc --------------------编程问答-------------------- row_number() 在ACCESS 不行啊,没这东西根本~~ --------------------编程问答-------------------- select * from (select top(5) row_number() over(order by id desc) as id,title from class) as a order by a.id desc --------------------编程问答-------------------- select * from (select top(5) row_number() over(order by id desc) as id,title from class) as a order by a.id desc --------------------编程问答-------------------- select row_number (order by id ) as id ,top 5 title from class order by id desc --------------------编程问答--------------------
select top 5 (select 6-count(*) from table1 where id>=a.id) as id,
title from table1 a order by id desc


access可用 --------------------编程问答-------------------- 这样不理想啊,如果只有4条怎么办? --------------------编程问答-------------------- mark --------------------编程问答-------------------- 标记学习 这个真不会 --------------------编程问答-------------------- 来人啊,这怎么弄啊~~ --------------------编程问答--------------------
select row_number() over(order by ID) as row_number,title from class where title in  
(select top 5 title from class order by id desc) order by row_number desc


经过测试这样是可行的 --------------------编程问答-------------------- 要是对面试官不爽, 就这么写:

select 5, '杭州'
union all
select 4 '成都'
union all
select 3 '武汉'
union all
select 2 '深圳'
union all
select 1 '北京'

- -! --------------------编程问答--------------------
引用 5 楼 zzxap 的回复:
SQL code
SELECT ROW_NUMBER() OVER(ORDER BY id DESC) AS id,   title FROM table



正解,就用 ROW_NUMBER()
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,