在Oracle中,如果不更新列值,是否有办法将数据存储在一个变量中,并使用where条件获得这些数据的计数?

问题描述 投票:0回答:1

我是一个新的Oracle。我需要一些帮助。所以情况是,在不更新表中任何列值的情况下,我必须存储一个DATE值,并从该DATE值中得到一个基于where条件的计数,我知道我们将使用'<='操作符。

例如,假设我有一列 "Sweep_Date",在这一列中,目前所有的值都是...。nulll.

我有将近2,92,300行,我必须更新日期值。但是在没有更新 扫码日期 有什么方法可以让我在列中存储一些日期,我可以写一个where条件,然后根据where条件从表中获取计数(*)?

我们可以使用一个临时变量吗?

任何帮助都是感激的......。

database variables plsql temp
1个回答
0
投票

啊哈,我想我明白了。

如果 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;
© www.soinside.com 2019 - 2024. All rights reserved.