Oracle中to_date函数的问题

记录一个Oracle中的坑,暂时还没有解决

 现有一条sql语句,如下结构

select * from table where dateType='1' and to_date(filed,'yyyy-mm-dd')>'2018-2-6'

where条件里使用了to_date()函数,那么这个函数查找的值会从整个表中 查询,dateType='1'这个条件会在

to_date()函数之后执行。

假设table表中数据有dateType='1'和dateType='0'两个类型,如果dateType='0'的数据不符合to_date()

函数的格式,那么sql就会报错

有以下几个问题:

1.sql的执行顺序不是应该where条件从左至右吗,这里的执行顺序被改变与oracle的性能优化有关吗

2.把其他条件的查询单独拎出来,做成一个子查询,依旧会有这种情况

3.有没有什么办法可以设置sql语句中每个部分的执行优先级?


邮箱: rj.han@outlook.com    有遇到同样问题或者有解决方案的欢迎来交流


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值