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'的记录,再取出其中的第一条记录,也就是我们想要的那一条记录

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值