Select dinstinct 序号,
(Select Top 1 金额 From Table where 序号 = t序号 Order By 时间 Desc)
From Table t
select id,max(time) from table
group by id;——这个语句是把表中所有记录每一个id的最大 *** 作时间取出来
select id,time from table
order by time desc;——这个语句是把表中的记录按时间倒序排序,第一条记录即为最近一次 *** 作的那条数据。
sql 获取每天数据最新三条记录
select t日期,t代码,t数量
from
(select 表名,row_number() over (partition by 代码 order by 日期 desc) rn from 表名) t
where trn<=3
你的表中必须有一列用于存储每条记录添加时间或更新时间的字段,否则无法筛选!!!
你可以在表中增加一列,如update_time,类型为datetime,把默认值设定为getDate(),插入的时候系统就会自动填充上当前时间,后插入的数据时间就会更后。
然后你筛选最新数据时就可以这样:
select id from tb_test
order by update_time desc
附带说一句,取最上面或者TOP最前的都不一定是最新的,最新插入的数据也有可能排在中间和最后,位置取决于你的SQL语句,要查最新必须有一个字段来记录时间才行。
2005以上版本适用:;with cte as(select ,row_number() over(order by news_id desc)rn from News where news_class_id=109 )select from cte where rn between 10 and 20----------------select top 10 from News where news_class_id=109and id not in (select top 10 id from news where news_class_id=109 order by news_id desc) order by news_id desc
select
from 表 W
where id=(select MAX(id) from 表 where SN=WSN AND Port=WPort)
主键如果是GUID,那肯定会带上聚集索引,聚集索引会从物理上改变数据的位置,而且GUID是无序的,对GUID排序也是得不到准确的结果,还有一种方法,通过日志去查找,但是这个复杂度太高,而且日志记录的是整个db的,查找比较麻烦,
结论:如果没有用自增长ID与createTime 字段,基本没法取最后插入的记录。
以上就是关于SQL检索条件取最新更新的数据全部的内容,包括:SQL检索条件取最新更新的数据、现有一张表(有ID和提),取出最新 *** 作的数据,sql怎么写、sql 获取每天数据最新三条记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)