以文本方式查看主题 - 课外天地 李树青 (http://www.njcie.com/bbs/index.asp) -- 清心茶舍 (http://www.njcie.com/bbs/list.asp?boardid=21) ---- 老师可以解释一下下面的话吗? (http://www.njcie.com/bbs/dispbbs.asp?boardid=21&id=233) |
-- 作者:信管04a43 -- 发布时间:2006/11/11 21:12:25 -- 老师可以解释一下下面的话吗? ansi/iso标准定义了在between测试中处理null值得一些复杂的规则 1 如果测试表达式生成一个null值,或者如果定义范围的两个表达式生成了null值,那么between测试返回一个null值。 2 如果定义范围下限的表达式生成一个null值,那么如果测试值比上限大,between测试则返回false。否则,返回null 3 如果定义范围上限的表达式生成一个null值,那么如果测试值比下限小,between测试返回false。否则,返回null 老师可以举个实例吗? 看的都晕了。。。。。。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
-- 作者:admin -- 发布时间:2006/11/12 20:31:41 -- 回复 空值的比较是比较古怪的!比如在between语句中,不过也是符合逻辑的。 如有学生表: 有如下查询: 显示为: 说明: 如果将000002号学生身高设为1.74,仍然没有显示,原因在于学号比其小的学生身高为null,而他的身高为1.74,小于between语句的上限1.76,比较结果返回null,而空值是作为假来处理的。这就是“如果定义范围下限的表达式生成一个null值,那么如果测试值比上限大,between测试则返回false。否则,返回null”。 [此贴子已经被作者于2010-12-13 19:48:11编辑过]
|