RT,
我现在需要一个过滤条件
就是
select sum(amt) from rb_acct where (mydate = 0 or to_date(maydate,'yyyymmdd')-sysdate < 30);
即我需要mydate满足减去系统时间要小于30,但是mydate=0又是有业务含义的,所以不能去掉,但是执行to_date又会报错,于是我就把他们写成or的形式,希望能够=0的时候跳过to_date,不等于0的时候执行to_date,但是执行的时候总会报错于是我把
where (mydate = 0 or to_date(maydate,'yyyymmdd')-sysdate < 30)
换成
where (to_date(maydate,'yyyymmdd')-sysdate < 30 or mydate = 0)
也报同一个错误,经验证是由于mydate=0参与了to_date的运算,好像这个or的顺序挺混乱的,一下从左边开始执行,一下从右边开始执行,那么我怎么才能达到需求的目的并且不报错呢?
我现在需要一个过滤条件
就是
select sum(amt) from rb_acct where (mydate = 0 or to_date(maydate,'yyyymmdd')-sysdate < 30);
即我需要mydate满足减去系统时间要小于30,但是mydate=0又是有业务含义的,所以不能去掉,但是执行to_date又会报错,于是我就把他们写成or的形式,希望能够=0的时候跳过to_date,不等于0的时候执行to_date,但是执行的时候总会报错于是我把
where (mydate = 0 or to_date(maydate,'yyyymmdd')-sysdate < 30)
换成
where (to_date(maydate,'yyyymmdd')-sysdate < 30 or mydate = 0)
也报同一个错误,经验证是由于mydate=0参与了to_date的运算,好像这个or的顺序挺混乱的,一下从左边开始执行,一下从右边开始执行,那么我怎么才能达到需求的目的并且不报错呢?
解决方案 »
- Oracle中外部表支持的类型有哪些
- blank代表什么意思
- 表空间的问题
- 急:oracle的速度越来越慢?(参加讨论给分)
- 外连接的问题
- 我有一用户买的有许可的oracle9i for windows的盘,安装后发现和从网上下载的一样,但是不能注册啊,是不有试用的问题,有人说只是有服务,网
- oracle9i安装成功后,运行总是提示“没有监听器”?
- 请问oracle的ORACLE_HOME环境变量怎么设置?
- 这条SQL的执行效率是不是很差,如果是,怎样才能效率好一些
- 高手!!oracle中是否有像Ms Sqlserver中的生成Sql语句的工具,在那里找到??
- 关于局域网内oracle连接不上的诡异问题
- -- 写一个创建相关表的SELECT 语句(排除指定字段)的代码给那些懒鬼们 --
or ( to_date(maydate,'yyyymmdd')-sysdate < 30 and mydate<>0 )
弱弱的建议一下不知道这样可行否