我有以下查询,当t2.date不为空时给出正确的输出
select t1.name,t1.work,t2.type from t1,t2 where t.name=t2.name and t1.postdate < t2.date
但是当t2.date为null时,查询不会获取任何行。所以我只想在t2.date不为空时添加t1.postdate < t2.date
条件。
当t2.date为null时我不想将它添加到查询中(我想要输出,因为上面的查询给出了没有和条件)
select t1.name,t1.work,t2.type from t1,t2 where t.name=t2.name
请帮我解决这个问题。 提前谢谢。
答案 0 :(得分:3)
我同意@jarlh,你可以使用它;
select t1.name,t1.work,t2.type from t1,t2 where t.name=t2.name and (t2.date is null or t1.postdate < t2.date)
答案 1 :(得分:0)
为什么不让NVL更清晰,更短?
select t1.name
,t1.work
,t2.type
from t1
,t2
where t.name = t2.name
and t1.postdate < nvl(t2.date, t1.postdate + 1);