我是一个新的Oracle。我需要一些帮助。所以情况是,在不更新表中任何列值的情况下,我必须存储一个DATE值,并从该DATE值中得到一个基于where条件的计数,我知道我们将使用'<='操作符。
例如,假设我有一列 "Sweep_Date",在这一列中,目前所有的值都是...。nulll.
我有将近2,92,300行,我必须更新日期值。但是在没有更新 扫码日期 有什么方法可以让我在列中存储一些日期,我可以写一个where条件,然后根据where条件从表中获取计数(*)?
我们可以使用一个临时变量吗?
任何帮助都是感激的......。
啊哈,我想我明白了。
如果 sweep_date
是空的,而你又不能更新它,那么就使用 NVL
功能。比如说
select count(*)
from your_table t
where nvl(t.sweep_date, date '2020-04-28') > t.some_other_date;
如果你使用了另一个表的日期列,那么连接表,并使用另一个表的列在 NVL
. 例如:
select count(*)
from your_table t join another_table j on j.some_id = t.some_id
where nvl(t.sweep_date, j.some_date) > t.some_other_date;