如果表1的id不为空则where 表1.id=表2.id and 另外条件,如果表1的id为空则where 另外条件;现在我并在一起:where 表2.id=isnull(表1.id,表2.id),查询不成功不知道问题出在哪里?
解决方案 »
- oracle表连接问题
- SQL语句问题;菜鸟问题;求解释;
- mapGIS出现ms-cannot-allocmem怎么办啊?
- 看看这个SQL有多少选错的?
- ora-00381错误,oracle 9i中修改db_block_buffers数据库启动不起来
- C/S模式下大数据量查询的效率问题
- 如何查看Oracle系统里的用户列表?(最后10分,敬请抢购)
- 超时的问题,急!1111
- oracle 给硬盘加锁?
- 金仓报错com.kingbase.jdbc3.AbstractJdbc3Statement.setString(Unknown Source)
- 迁移AWR数据
- oracle exp怎样过滤不用的表
where t1.id=t2.id -- 此时不需要考虑空值:因为空值与空值相比较,为假(两个空值不相等)
or ( t1.id is null and 其他条件);-- or 表示:并在一起
应该是这样的。
where (case when 表1.id is not null then 表1.id=表2.id else 1=1 end)
oracle的用nvl楼主可以把当“如果表1的id为空则where 另外条件”中的另外的条件也给出来
大家可以给你更完整的答案
where (表1.id=表2.id) or (表1.id is null and ....)感觉你的完全就是外连接
表1.id(+)=表2.id