您的位置:首页 > 数据库 > Oracle

Oracle中to_date函数的问题

2018-02-06 17:52 183 查看
记录一个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    有遇到同样问题或者有解决方案的欢迎来交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle to_date it 数据库