前几天忙的很,今天终于闲了一点,就把一些电子资料拿出来看看,当看到between and的时候,我想到了什么,以前老是因为between and的边界问题而去百度搜索,老是记不住。所以,就在网上搜索了一些资料,详细的总结一下。
经查阅资料发现,不同的数据库对between...and操作符的的处理方式是不一样的,有些数据库是包含边界,也有一些数据库不包含边界。那么oracle数据库到底是包含还是不包含呢?我做了如下测试:
经上图测试发现,oracle对between and的处理是包括前后边界,也就是一个闭区间,相当于是前面<=,后面<=。对于MySQL、SQL Server它们是怎么支持的,我没测试,不清楚。强烈建议,以后用的时候如果忘记了边界问题,可以写个例子测试一下,以免开发的时候出错。
补充:
相比于一般的SQL关键字,exists可能稍微有点特殊,exists只注重子查询是否返回行,如果子查询返回一个或多个行,那么就为true,否则为false。exists子查询中的select子句中可以使用任何列名,也可在此使用任意多个列。exists只注重是否返回行,而不注重行的内容。因此,可以指定任何列名或者只是一个星号。
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) | Powered by Discuz! X3.2 |