これは、where
を使用したクエリです。 条項:
select value1, to_date(value1,'DD.MM.YYYY')
from variableindex
where value1 is not null and
value1 <> '0' and
creation_time_ > to_timestamp('20140307', 'YYYYMMDD') and
to_date(value1 'DD.MM.YYYY') < to_date('20140301', 'YYYYMMDD')
order by 2;
Oracleは、where
の句の処理順序を保証しません。 。したがって、value <> '0'
最後の条件の前に実行されることは保証されていません。これは、SQLServerではたまたま大きな問題です。 1つの解決策は、case
を使用することです。 ステートメント:
select value1,to_date(value1, 'DD.MM.YYYY')
from variableindex
where value1 is not null and
value1 <> '0' and
creation_time_ > to_timestamp('20140307', 'YYYYMMDD') and
(case when value <> '0' then to_date(value1, 'DD.MM.YYYY') end) <
to_date('20140301', 'YYYYMMDD')
order by 2;
かなり醜いですが、それで問題が解決するかもしれません。