p varchar2(20)
if(p between '1' and '400')then
......
end if;为什么象8,41,55..这样的数不能符合条件。而其他的(如199,400,233..)又可以?
如果改成if(p betweent 1 and 400) then
这样就完全对了,加单引号是怎么判断的??请高手指点指点!!!
if(p between '1' and '400')then
......
end if;为什么象8,41,55..这样的数不能符合条件。而其他的(如199,400,233..)又可以?
如果改成if(p betweent 1 and 400) then
这样就完全对了,加单引号是怎么判断的??请高手指点指点!!!
字符从第一个字符开始对比,‘8’>‘4’,所以‘81’>‘400’
如果第一个字符相同,就再对比第二个字符,所以‘41’>‘400’p betweent 1 and 400 这句话,ORACLE会隐式的帮你把P转换成数字,再跟1和400来比较
这样81<400
非常感谢你的解答~~3Q