oracle 查询条件中判断两个字段相等时 一个字段为空则跳过
where语句后面是t.dataTime=t2.dataTime如何进行这样的判断:当t.dataTime或者t2.dataTime为空时则跳过相等判断,如果两个量都有值...
where 语句后面是 t.dataTime=t2.dataTime 如何进行这样的判断:
当t.dataTime或者 t2.dataTime 为空时 则跳过相等判断,如果两个量都有值则进行判断
在线等....急...... 展开
当t.dataTime或者 t2.dataTime 为空时 则跳过相等判断,如果两个量都有值则进行判断
在线等....急...... 展开
3个回答
展开全部
--楼下的用的函数 是当某值为空 赋给什么值 不符合楼主的要求
--我帮你改下 执行时 先判断全面的条件 就过滤掉了空值 还有‘’ 和null 是不一样的 所以都要过滤
--希望解决了楼主的问题
where t<>'' and t is not nul and t2<>'' and t2 is not null
and t.dataTime=t2.dataTime
--我帮你改下 执行时 先判断全面的条件 就过滤掉了空值 还有‘’ 和null 是不一样的 所以都要过滤
--希望解决了楼主的问题
where t<>'' and t is not nul and t2<>'' and t2 is not null
and t.dataTime=t2.dataTime
更多追问追答
追问
(关联条件 or (t.dataTime is null or t2.dataTime is null)) 问题这样解决了,不过还是谢谢了
追答
你这样写 括号有什么意义呢? 有没有想过?
如果你这样是解决了问题 那么你描述就有问题
展开全部
使用nvl函数进行空值转换,如:nvl(t.dataTime, sysdate)=nvl(t2.dataTime,sysdate),要不就写个子查询把空值过滤掉
更多追问追答
追问
nvl(t.dataTime, sysdate)=nvl(t2.dataTime,sysdate) 这样子的话....如果我t.dataTime 不为空,但是t2.dataTime为空,则t和t2数据匹配就完全不对了啊
追答
不太明白你说的,空值本来就应该和具体的值匹配不上啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以where后面限定t.dataTime, t2.dataTime 不为空啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询