初学oracle,问一个简单问题

哥眼神纯洁不 2013-06-13 12:09:03
关于where字段的。
where 字段 like 'a%' or 字段 like 'b%' or 字段 like 'c%'
where 字段 between 'a' and 'c'
这两个表达的意思不一样吗?不都是查找出以a,b,c开头的数据吗?
...全文
107 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2013-06-13
  • 打赏
  • 举报
回复
1、在某些特殊的点结果会是一样的 2、在这些特殊的点,like 'a%' or like 'b%' 等价于 >='a' and <='c',注意,这里是<='c' 3、如果说再增加 or like 'c%' ,between的范围还是 'a' 到 'c' 那么只有一种情况 c=c
哥眼神纯洁不 2013-06-13
  • 打赏
  • 举报
回复
引用 1 楼 mawenpinga 的回复:
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,否则为空集。
我测试了数据,感觉没有区别,那where 字段 between 'a' and 'c' 不是判断区间吗?
mawenpinga 2013-06-13
  • 打赏
  • 举报
回复
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,否则为空集。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧