首页 > 数据库技术 > 详细

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

时间:2015-05-01 01:54:04      阅读:338      评论:0      收藏:0      [点我收藏+]

    “前一个”概念意味着需要逻辑排序,但是我们知道,表中的行是不骨顺序的,那我们就需要提供一个等同于“前一个”并能够以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 返回前一下或下一个值

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!