日期:2014-05-17  浏览次数:20954 次

初学oracle,问一个简单问题
关于where字段的。
where 字段 like 'a%' or 字段 like 'b%' or 字段 like 'c%'
where 字段 between 'a' and 'c' 
这两个表达的意思不一样吗?不都是查找出以a,b,c开头的数据吗?
Oracle

------解决方案--------------------
1、
where 字段 like 'a%' or 字段 like 'b%' or 字段 like 'c%';
求的结果应该是和
where 字段 between 'a' and 'd'  and 字段 != 'd';
一样。
2、
like和between后台处理方式应该不一样,
 like 'a%' or 字段 like 'b%' or 字段 like 'c%',指字段第一个字母为a
------解决方案--------------------
b
------解决方案--------------------
c,
类似于substr(字段,1,1)in (a,b,c),a,b,c不分大小;
而where 字段 between 'a' and 'd' ,指字段在[a,d]区间的数据,是比大小,且a必须大于d,否则为空集。
------解决方案--------------------
1、在某些特殊的点结果会是一样的
2、在这些特殊的点,like 'a%' or like 'b%' 等价于 >='a' and <='c',注意,这里是<='c'
3、如果说再增加 or like 'c%' ,between的范围还是 'a' 到 'c' 那么只有一种情况 c=c