SQL语句如何查询倒数第二项数据

我建立了一个新闻表,我现在需要查询出所有的新闻中最新的第二条所有信息(次最新的信息),SQL应该怎么写啊?
谢谢。

可以使用sqlserver中的row_number函数。

如:test表内容如下

id     titile    time

1      ä½ å¥½    2015-01-01

2      æ­£ç¡®    2015-02-01

3      æ˜Žå¤©    2015-03-01

4      æ•°æ®    2015-04-01

5      å¼€å¿ƒ    2015-05-01

比如要查时间倒数第二晚的,也就是id=4的这条数据,可用下边语句

select t.* from
(select *,row_number() over (order by time desc) rn from test) t
where rn=2;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-02
先按照日期的降序排列查询出最新的和次最新的这2条数据:
select top 2 * from 新闻表名 order by 日期字段名 desc

再查询出次最新的信息:
select top 1 * from (select top 2 * from 新闻表名 order by 日期字段名 desc) order by 日期字段名本回答被提问者采纳
第2个回答  2010-05-02
select top 1 * from (select top 2 * from tablename order by date desc) as t order by date 这种做法挺好,我一直用这种
第3个回答  2010-05-02
select top 1 * from 新闻表 where id not in (select top 1 id from 新闻表 order by 时间 desc) order by 时间 desc
简单的分页
第4个回答  2010-05-02
select top 1 * from (select top 2 * from tablename order by date desc) as t order by date

SQL语句如何查询倒数第二项数据
比如要查时间倒数第二晚的,也就是id=4的这条数据,可用下边语句 select t.* from(select *,row_number() over (order by time desc) rn from test) twhere rn=2;

如何查询access倒数第二条录入数据并输出title项
创建一个时间字段吧,然后通过时间比对来做选择。

SQL数据库语句大全
8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值2 9、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’...

怎样查询SQL数据库中某一个表中的某个列的一个数值的所有行数据?
\\x0d\\x0a第二个:根据选择的菜单查询需要的信息\\x0d\\x0aselect * from Infomations a where a.MenuID=ID(选择下拉框选项对应的ID值)\\x0d\\x0a在下拉框中选择“主食”,点击查询按钮,肯定是要查询和主食相关的数据,那就通过主食对应的ID(也就是下拉框绑定的时候查询的ID)去数据库对应的...

sql语言中,实现数据检索的语句是
一、检索单个列 命令:SELECT 列名 FROM 表名;注意:语句将返回表中所有行,数据没有过滤(过滤将得出结果集的一个子集),也没有排序。二、检索多个列 命令:SELECT 列名1,列名2,…… FROM 表名;注意:在选择多个列时,一定要在列名之间加上逗号,但是最后一个列名后不加。三、检索所有列 命令...

sql语句单行子查询返回多个行的问题
很明显啊,说明你的sno不是主键,数据不是唯一的 如果是sql server这样写 select (select top 1 grade from sc where sc.sno=t.sno) as 数据库 from sc t;oracle这样写 select (select grade from sc where sc.sno=t.sno and rownum=1) as 数据库 from sc t;...

sql中多条件进行查询,查询语句该怎么写?
1、首先我们打开电脑里的SQL打开一个数据库。2、然后我们点击界面上方菜单栏里的表选项打开数据库的一张表进行查询。3、然后我们选择表右上角的加号键。4、然后我们在编辑器中输入如图所示代码进行数据查询。5、然后我们点击运行查看运行结果。6、多条件查询最终结果如图所示我们可以看到多条件查询语句成功...

SQL简单查询(条件查询 模糊查询)
一.基本查询语句 执行SQL查询,只需指定要获取的列名。例如:select 列名,列名,... from student;若需为列名定义别名,可在别名前加上"as"关键字,且中文别名需用英文引号括起:select 列名 as ABC,列名 as '其他名' from student;为去除重复数据,使用distinct关键字:select distinct 姓名 from ...

SQL简单查询语句
一.基本的查询语句 1.基本的查询语法:select 字段列表 from 表名;2.查询所有字段:select * from 表名;3.为列名设定别名as select 姓名 as name,性别 as 人类性别 from student;4.删除重复数据:select distinct 姓名 from student;5.sql书写规则:二.指定查询条件 数据如下图:select 姓名,学号 ...

sql一条语句来表示前三项升序排序,其他项降序
实现:1 2 3 5 4 的效果:假设你要的字段为:col_you_want , 类型为 int select col_you_want from mytable a order by case when identity(int,1,1) <= 3 then identity(int,1,1) end asc ,col_you_want desc ;

相似回答