永发信息网

oracle中对查询结果的to_date转换是在where子句执行后执行的还是在执行前执行的

答案:2  悬赏:20  手机版
解决时间 2021-02-03 14:42
我在执行查询语句时发现当我用select to_date(month,'YYYYMM') from table1 where flag = '0' 时查询日期时,oracle报month的长度不符合转换格式,原因是在table1中有一条month的值是0。除此之外month的值都是6位的num型,通过flag = '0'可以过滤掉这条记录,但是oracle还是报了错;可是当我执行select months_between(to_date(201410,'YYYYMM'),to_date(month,'YYYYMM')) from table1 where flag = '0' 时语句执行成功了,也就是说flag = '0'的条件成功过滤掉了month=0的记录,并将过滤后生成的虚拟表作为select语句的入参,但是在前一种情况下to_date似乎是对全表起的作用,而并非是对flag = '0'之后的结果操作的,这难道是因为to_date是在where子句之前执行的吗,那为什么后一种情况的to_date没有先执行呢?
不知那位oracle大手能为在下指点迷津,十分感谢

对于to_date函数对num型数据的隐士转换问题本人是知道的,但这不是导致问题出现的原因,所以请大家不必再提醒我这一点了,这个问题的出现重点在于oracle在执行查询时对于单纯的to_date没有执行where子句的过滤,而对于month_between函数where子句却执行成功了,这一点很令人困惑,不知哪位高手可以指点一二,不胜感激!
最佳答案
其实你想多了
select to_date(month,'YYYYMM') ,你的这句话是有问题的。

首先你去查下to_date函数的第一个参数应该是字符串类型,而这里你是number类型,当然会报错。应该是select to_date(to_char(month),'YYYYMM')

其次,select months_between(to_date(201410,'YYYYMM'),to_date(month,'YYYYMM')) 成功是因为有to_date了。

最后,“这难道是因为to_date是在where子句之前执行的吗”这句话也有问题,一般来讲select子句永远是最后执行,而where一般都是较早执行,这是普遍情况。具体你要看执行计划。
全部回答
where 是先决条件,having是分组后的后决条件。 如果你写了一个where a=1 group by b,那么该条件意思是对所有a=1的b值进行分组。也就是先where再分组。 having是后决条件,比如在group by的时候执行了一个sum语句,sum后值有1,2,3,4,5,如果你只想取sum的值>3的,也就是说在sum之前,你并不知道哪些sum的值可以大于3,sum后你才能知道。 如果按照一般的写法,那么就是在外面再套一层sql,那么这就是having了,他可以不用套这层sql了。可以直接having 字段>3,也就是having的主要作用是先分组,分组后的值,可以在having中进行判断。 where直接做不到这点,如果用where来做,那么只能是在外面套一层sql,然后用where。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海尔是国企吗?
100/5电流互感器为一匝,若一次侧穿二根负载线
名廊专业发型设计地址在什么地方,我要处理点
黄栗留的意思是什么啊?知道的请说下!
已知tanα=3,则(sinα-2cosα)/(5sinα+co
江西二本院校排名榜
那磨地址在哪,我要去那里办事
“心静思远,志行千里”是什么意思?
Could it be in the place we visited yeste
人人发型屋地址在哪,我要去那里办事
我做牙齿矫形要拔牙,请问拔牙痛吗,有多痛,
AMD300系列显卡,哪个不是马甲卡
我们正在学习《文化生活》,这里的“文化”是
惠联超市(震泽医院大船港社区卫生服务站东)地
新潮理发室地址在什么地方,想过去办事
推荐资讯
力资费是什么意思
怎样的情况下可以单方面提出离婚,我跟我老婆
谁的女朋友是车模,你同意她当车模吗
【人外有人天外有天】人外有人'天外有天,什么
礧碕的意思是什么啊?知道的请说下!
我想问一下黑龙江国税政审社会在职人员去用人
张家界旅游一些需要的东西,你们有没有准备过
【地心引力答案网影音】重力是否等于地心引力
完美国际宠物通灵犬怎么抓不到了!!!
告礼的意思是什么啊?知道的请说下!
银行利息更低,为什么还有那么多人在P2P平
孳孳汲汲的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?