欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql server 怎么查询最后一条记录

更新时间: 2014-01-05 02:07:38 责任编辑: Author_N1

 

SQL Server 如何查询最后一条记录

在机房收费系统的数据库中,有这样的一个表:worklog_info

 

这个表有什么作用呢?这个表的作用就是记录着工作人员的操作记录,也就是说,一个一般用户(操作员或管理员)登陆这个系统,和正常关闭这个系统以后,在这个表中就会增加一条该用户的使用记录!

 

下面是该表的各个字段名,有的同学就感觉其中serial列没什么用,甚至有的同学自作主张的删掉该列!那么我只能说,这么做真的很不理智!

 

以我个人的理解:当管理员 1 登录此系统时,在表中添加一条记录,其中包含,用户名,级别,登录日期,登录时间,电脑名,和状态。如下图serial=232的记录

 

那么我们为什么会出现serial=229这样只有登录时间却没有下线时间的记录呢?原因就是,该用户没有正常退出此系统,比如说:死机,关机等操作!正因为有这样不完整的记录,所以我们就遇到一个问题,当我们此时正常下线的时候,怎么样跳过serial=229这条记录将下线的日期和时间添加到serial=232这条记录中呢?

 

此时 serial这个字段的作用就突显出来了!serial这个字段是当表中添加一条记录的时候,自动加一

 

正是因为有了这样的一个字段,我们才能实现我们想要的功能!那么我们到底要怎么来实现呢?我们到底该怎么写查询语句呢?请看:

select top 1 * from worklog_Info where UserID='1' order by serial desc


 

下面就来给大家解释一下这条查询语句:

 

select * from worklog_Info

这条语句大家都懂吧,查询work_Info表中的所有记录

 

select * from worklog_Info where userid='1'

这条语句大家也都明白吧,查询work_Info表中userid字段等于'1' 的记录

select top 1 * from worklog_Info where userid='1'

这条语句什么意思呢?就是查询work_Info表中所有userid字段等于'1'记录的第一条

 

select top 1 * from work_Info where userid='1' order by serial desc

这条语句就是我们最后想要的,也就是先把worklog_Info表中的记录按serial字段以倒序来排序,然后在查询出其中userid字段等于'1'的记录,再取出其中的第一条记录,也就是我们想要的那一条记录

 

怎么样,是不是很简单!你会了吗?

 

 

 

5楼lovemenghaibin昨天 20:24
学习了
4楼u010092167昨天 08:19
我不会
3楼zc474235918昨天 20:38
填充因子,很多人都忽略了这个知识。
2楼zhanghongjie0302昨天 20:35
学习。
1楼ZHOUCHAOQIANG昨天 18:44
总结的不错。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:07:38
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/5932/
本文WWW.DOC100.NET DOC100.NET版权所有。