oracle between and的边界范围问题

前几天忙的很,今天终于闲了一点,就把一些电子资料拿出来看看,当看到between and的时候,我想到了什么,以前老是因为between and的边界问题而去百度搜索,老是记不住。所以,就在网上搜索了一些资料,详细的总结一下。

经查阅资料发现,不同的数据库对between...and操作符的的处理方式是不一样的,有些数据库是包含边界,也有一些数据库不包含边界。那么oracle数据库到底是包含还是不包含呢?我做了如下测试:

oracle数据库between and测试

图1:oracle数据库between and测试

经上图测试发现,oracle对between and的处理是包括前后边界,也就是一个闭区间,相当于是前面<=,后面<=。对于MySQL、SQL Server它们是怎么支持的,我没测试,不清楚。强烈建议,以后用的时候如果忘记了边界问题,可以写个例子测试一下,以免开发的时候出错。

2014-11-04补充:

相比于一般的SQL关键字,exists可能稍微有点特殊,exists只注重子查询是否返回行,如果子查询返回一个或多个行,那么就为true,否则为false。exists子查询中的select子句中可以使用任何列名,也可在此使用任意多个列。exists只注重是否返回行,而不注重行的内容。因此,可以指定任何列名或者只是一个星号。

本文标题:oracle between and的边界范围问题

本文链接:http://yedward.net/?id=99

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章