我有一個記錄表,並且一列包含記錄變爲非活動狀態時的值。 大部分記錄仍處於打開狀態,因此不會在end_date
列中保留任何值。Oracle:SELECT如果日期不是零,則等於空
我想選擇所有這些仍然有效的記錄。一種方法來實現這一點(從我的頭頂上):
select *
from table t
where nvl(t.end_date, to_date('2099-DEC-31', 'MM-DD-yyyy')) > sysdate
但它感覺不對。有沒有更好的方法來實現我想要的?
編輯:BTW,該表是不是巨大的,是不會成長:)
這是常用的......而且,你甚至可以創建一個'NVL()'表達功能的索引,使之更快。 (如果並且只有當你需要這種優化時) – ppeterka
這是不正確的,因爲是'MM-DD-yyyy'。應該是'yyyy-mon-dd'。 :) –
@弗洛林Ghita - *我的頭頂。 – hogni89