我正在编写一个SQL查询,其中查询应首先搜索第一个值,并且只有在缺少此值时,查询才应搜索第二个值。
我有两张桌子。其中一个表包含修改日期(这并不总是填充,可以是null
)和一个始终填充的创建日期。
现在我想要的是查询首先在表中查看修改日期,并且只有null
查看具有创建日期的表。
查询示例:
Select *
from all_articles
where to_char(modification_date, 'YYYYMMDD') = to_char(sysdate, 'YYYYMMDD')-1
-- if this is an empty record then
to_char(creation_date, 'YYYYMMDD') = to_char(sysdate, 'YYYYMMDD')-1
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
几乎所有主要的RDBMS'可用的内置函数来处理这种情况。 Oracle DB具有NVL功能,其工作方式如下: NVL(Modified_dt,Create_dt);
以上将默认返回Modified_dt列数据。但是,如果它不可用,它将返回Create_dt。