sql 如何查询同一个字段中,日期最近的那个记录

sql 如何查询同一个字段中,日期最近的那个记录,第1张

使用“order by  字段名 desc ”对日期字段进行倒序排序即可。

sql语法:select  * from 表名 order by 日期字段名 desc

其中,排序的时候order by 后面跟着需要进行排序的字段名,排序可以有两种,默认是asc升序(在sql中可以不写),如果希望降序排列的话,可以使用desc。如你想要最近的日期的话就只需要降序即可。

举例:如tpl_purchase_order 是我的订单表,该表有一个字段创建日期(字段名:CREDATE)是日期类型,希望通过sql实现按照按照创建日期由近到远的顺序排列。

对应sql: select * from  tpl_purchase_order order by  credate desc

sql执行后输出结果为:

扩展资料:

我们可以通过一些实例来具体分析排序order by 子句的用法:

假设有Orders 表如下:

1、实例 1

以字母顺序显示公司名称

SELECT Company, OrderNumber FROM Orders ORDER BY Company

结果如下:

2、实例 2

以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

结果如下:

3、实例 3

以逆字母顺序显示公司名称:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

结果如下:

4、实例 4

以逆字母顺序显示公司名称,并以数字顺序显示顺序号:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

结果如下:

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

select*,max(create_time)froma

wherecreate_time<="2017-03-2919:30:36"

groupbyuser_id

这句可以理解为将结果集根据user_id分组,每组取time最大一条记录。这样就很好的实现了批量查询最近记录,并且仅仅需要遍历一次表,即使在数据量巨大的情况下也可以在很短的时间查出结果。

扩展资料:

SQL数据查询语句

1、语句语法简单归纳为:

SELECT select_list [INTO new_table_name][FROM table_source]

[WHERE search_condition][GROUPBY group_by_expression]

[HAVING search_condition][ORDERBY order_expression [ASC|DESC]]

2、WITH子句用于指定临时命名的公用表达式,在单条语句(SELECT、INSERT、UPDATE、DELETE)的语句执行范围内定义。

3、LIKE关键字

用于模糊查询,通配符有%、_、[]、[^]

%:后面可以跟零个或多个字符

_:匹配任意单个字符

[]:查询一定范围内的单个字符,包括两端数据

[^]:表示不在一定范围内的单个字符,包括两端数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/6768491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存