码迷,mamicode.com
首页 > 数据库 > 详细

T-SQL 返回前一下或下一个值

时间:2015-05-01 01:55:34      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:表达式   最大值   上一个   t-sql   下一个   

    “前一个”概念意味着需要逻辑排序,但是我们知道,表中的行是不骨顺序的,那我们就需要提供一个等同于“前一个”并能够以T-SQL表达式表述的概念。这种逻辑等效的一个例子是“小于当前值的最大值”。这句话,在T-SQL中可以使用一个像下面这样的相关子查询进行表达:

SELECT orderid,orderdate,empid,custid,

  (SELECT MAX(O2.orderid) FROM order AS 02 WHERE 02.orderid<01.orderid) AS prevorderid

FROM order AS 01;

注意,由于在第一个之前不会有订单,子查询会为第一个订单返回NULL值。


    同样,可以将“下一个”概念表述为“大于当前值的最小值” 。下面为每一个订单返回下一个订单ID的T-SQL查询。

SELECT orderid,ordate,empid,custid

    (SELECT MIN(orderid) FROM order AS 02 WHERE 02.orderid>01.orderid) AS nextorderid

FROM orders AS 01;

    注意,由于最后一个之后不会有订单,子查询为最后一个订单返回NULL。



本文出自 “成长基石” 博客,请务必保留此出处http://jeffxi.blog.51cto.com/8540759/1641101

T-SQL 返回前一下或下一个值

标签:表达式   最大值   上一个   t-sql   下一个   

原文地址:http://jeffxi.blog.51cto.com/8540759/1641101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!