易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle:1 not in (null)检索不出结果

in/not   in在判断NULL时用的与=/<>一样的方式,即必须用is   null来判断,否则始终为失败。  
  语句  
  select   'true'   from   dual   where   (1,2)   not   in   ((2,3),(2,null));  
  成功的原因在于判断二元值时首先判断其中一个非null元素,该元素成功或者失败会“短路”另一个个。由于上述第一个元素就使not   in成功了,因此第二个元素就不再处理。  
  语句  
  select   'true'   from   dual   where   (2,1)   not   in   ((2,3),(2,null));  
  的第一个元素没有造成“短路”,因此引起了null判断,从而结果始终为失败。  
  请再实验语句  
  select   'true'   from   dual   where   (2,1)   not   in   ((2,3),(null,3));  
  其结果为true,原因是第二个元素短路了第一个元素。  
   
  以上分析纯属个人观点,仅供参考。
转自http://topic.csdn.net/t/20041230/12/3688313.html


相关文档:

用 java调用oracle存储过程总结

1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返
回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。
2、什么时候需要用存储过程
......

oracle 之系统表 点滴 积累

查看正在执行的sql语句
SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
捕捉运行很久的SQL
 select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$ ......

北大青鸟oracle学习笔记16

PL/SQL
 
块结构
DECLARE
         声明部分
BEGIN
         可执行部分
EXCEPTION
         异常处理部分
END;
 
例:
首先我们看一个简单之例子,下面这个例子是统计从1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号