请问个问题
select nvl(cy4,'空的') from cl_cy where SEQNO = '0066722';
--返回正常
select nvl(cy4,'空的') from cl_cy ta,person tb where ta.SEQNO = '0066722' and ta.cy4=tb.usercode;
--返回不正常
select nvl(cy4,'空的') from cl_cy where SEQNO = '0066722';
--返回正常
select nvl(cy4,'空的') from cl_cy ta,person tb where ta.SEQNO = '0066722' and ta.cy4=tb.usercode;
--返回不正常
解决方案 »
- 高分求救高手解决数据从一个表插到另一个表
- 大家好,请大家帮我看一下这个触发器错在哪里?
- 急问,如和在red hat linux8 下安装 oracle 8?
- oracle 建立表空间问题!在线等!
- 诸如select xx from tablename where cor in (;something) 中的something怎么变量绑定
- 怎样忽略当前用户的影响,查询所有用户的object
- ORACLE中将字符串转换成DATE类型的函数是什么
- 数据库修改IP后,不能启动!在线等待!!!
- 如何解决Oracle 8i 的SQLPlus Worksheet中简体中文显示为乱码的问题?
- 数据库不支持事物处理,怎么办?
- 求一oracle存储过程写法
- 从红旗LINUX下备份出来的Oracle数据库,能还原在WINDOWS下的Oracle上么?
FROM cl_cy ta, person tb
WHERE ta.seqno = '0066722 ' AND ta.cy4 = tb.usercode;
-- ta.cy4 = tb.usercode保证了cy4肯定不为空,那肯定不会需要使用nvl(cy4,'空的')咯
两个表等价连接。
只有都满足的记录才会选出来,LZ是不是对表的联结的理解有问题呢?
想要cl_cy ta里面的所有数据都显示出来,需要用到左完全外连接。
改成select nvl(ta.cy4, '空的 ')试一下。
假如他的两个表都有cy4的话,sql就是报错的,说这个字段暧昧。
select nvl(cy4, '空的') from cl_cy ta,person tb
where ta.SEQNO = '0066722'
and (ta.cy4=tb.usercode or ta.cy4 is null);
select nvl(cy4, '空的') from cl_cy ta,person tb where ta.SEQNO = '0066722' and ta.cy4=tb.usercode(+);
或者
select nvl(cy4, '空的') from cl_cy ta,person tb where ta.SEQNO = '0066722' and ta.cy4=tb.usercode(+);
nvl(cy4, '空的 ')什么意思?